Ich versuche dieses Problem Schritt für Schritt im folgenden Beispiel zu erklären.
0) Frage
Ich versuche dich so zu fragen:
Ich möchte eine Seite wie das Facebook-Profil www.facebook.com/kaila.piyush öffnen
Es erhält eine ID von der URL und analysiert sie in der Datei profile.php. Es gibt featch-Daten aus der Datenbank zurück und zeigt den Benutzer seinem Profil an
Wenn wir eine Website entwickeln, sieht der Link normalerweise wie folgt aus: www.website.com/profile.php?id=username example.com/weblog/index.php?y=2000&m=11&d=23&id=5678
Jetzt aktualisieren wir mit neuem Stil und schreiben nicht neu. Wir verwenden www.website.com/username oder example.com/weblog/2000/11/23/5678 als Permalink
http:
http:
http:
1) .htaccess
Erstellen Sie eine .htaccess-Datei im Stammordner oder aktualisieren Sie die vorhandene:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php
Was macht das?
Wenn es sich bei der Anforderung um ein echtes Verzeichnis oder eine Datei handelt (eine, die auf dem Server vorhanden ist), wird index.php nicht bereitgestellt, andernfalls wird jede URL zu index.php umgeleitet.
2) index.php
Jetzt möchten wir wissen, welche Aktion ausgelöst werden soll, und müssen daher die URL lesen:
In index.php:
$requestURI = explode(‘/’, $_SERVER[‘REQUEST_URI’]);
$scriptName = explode(‘/’,$_SERVER[‘SCRIPT_NAME’]);
for ($i= 0; $i < sizeof($scriptName); $i++)
{
if ($requestURI[$i] == $scriptName[$i])
{
unset($requestURI[$i]);
}
}
$command = array_values($requestURI);
With the url http:
$command = array(
[0] => 'profile',
[1] => 19837,
[2] => ,
)
Now, we have to dispatch the URLs. We add this in the index.php :
require_once("profile.php");
switch($command[0])
{
case ‘profile’ :
profile($command([1]);
break;
case ‘myprofile’ :
myProfile();
break;
default:
echo "404 Error : wrong page.";
break;
}
2) profile.php
Jetzt in der Datei profile.php sollten wir ungefähr so etwas haben:
function profile($chars)
{
if (is_int($chars)) {
$id = $chars;
} else {
$username = mysqli_real_escape_string($char);
}
}
function myProfile()
{
$id = ....
profile($id);
}