Search Engine freundliche PHP-Seiten

Zend Technologien - kodieren Sie Galerie-Scheinwerfer - Search Engine freundliche PHP-Seiten
Nun da Sie ein besseres Verständnis des Probleme haben, lassen Sie uns die Lösung betrachten. Damit eine Spinne, zum (und infolgedessen Index) einer gegebenen Seite zu überqueren, muss das URL von jedem möglichem Aussehen von Parametern frei sein. Aber, wenn eine gegebene Seite Parameter erfordert, richtig zu arbeiten, kann was getan werden? Die Antwort liegt im Gebrauch von der $PATH_INFO Umgebungsvariable, der Sie umwandeln können ein URL von…
http://www.zend.com/myscript.php?myvalue=Hello

… zu einem Spinne-freundlichen Format:
http://www.zend.com/myscript.php/myvalue/Hello

Beachten Sie, dass das Spinne-freundliche Format keine Anzeige enthält, dass es alle mögliche Parameter gibt, die überhaupt überschritten werden. Eher schaut es einfach, wie wir versuchen, auf das Verzeichnis auf dem zend.com-Aufstellungsort /myscript.php/myvalue/Hello zurückzugreifen, und jede mögliche Enginespinne, die auf die Seite zurückgreift, hat keine Mühe, dem URL zu folgen. Dennoch in Wirklichkeit führen wir den Index myscript.php durch.

Aber was geschah Ihren Parametern?
Wie man Ihre versteckten Daten ERHÄLT

Nun da Sie erfolgreich Ihre Parameter versteckt haben innerhalb, was scheint, eine Verzeichnisstruktur zu sein, wie erhalten Sie sie heraus? Wann immer ein PHP-Index mit den Extrawegdaten durchgeführt wird, die zum Ende des Dateinamens angefügt werden (wie wir im Spinne-freundlichen Beispiel oben taten), verursacht das web server eine Umgebungsvariable $PATH_INFO, die diese Informationen enthält. Sie können auf diese Umgebungsvariable durch PHP dann automatisch zurückgreifen und analysieren es, um unsere Daten zurückzuholen. So unser früheres URL…

http://www.zend.com/myscript.php/myvalue/Hello

… würde die $PATH_INFO Variable mit bevölkern:

/myvalue/Hello

… von, welchem Sie dann analysieren können und die vermittelten Informationen zurückholen.
Dechiffrieren Ihrer Daten

Nun da Sie wissen, wo Ihre Parameter sind, ist der folgende Schritt, sie in ein Format zu dechiffrieren, das PHP verwenden kann. Obgleich es keine erforderliche Methode für das Handeln dies gibt, nehme ich an, dass Sie Ihre Daten folgendermaßen formatiert haben:

/var_name/var_data/var2_name/var2_data/…

Unter Verwendung dieser Methode ist alles, das gelassen wird:

* brechen Sie die zur Verfügung gestellte Schnur, jedes Mal wenn wir einen Schrägstrich antreffen („/")
* verursachen Sie Variablen, um die gegebenen Namen (var_name, var2_name, etc.) mit ihren jeweiligen Werten (var_data, var2_data, etc.) zu verbinden

Mit den ganzen dieses im Verstand, lassen Sie uns irgendeinen realen Code betrachten.
Der Index

Wie mit vielen leistungsfähigen Techniken, ist der Code, der erfordert wird, um diese Fähigkeit in Ihren Indexen zu verursachen, nicht schwierig sich zu entwickeln. Der Prozess besteht, eine Reihe zu überqueren, die auf dem $PATH_INFO basiert, und die Variablen zu verursachen, die auf der Daten basieren. Im Ende ist der Gegenstand, das URL zu nehmen…

http://www.zend.com/myscript.php/myvalue/Hello

… verwenden Sie dann die Daten, die in der $PATH_INFO Variable bereitgestellt werden, um entsprechende Variablen zu konstruieren:

$myvalue = „hallo“
Kodieren Sie Fluss

* Überprüfen Sie auf dem Bestehen von $PATH_INFO
* Spalten Sie $PATH_INFO in eine Reihe auf
* Wenn die Gesamtzahl Parametern gleichmäßig ist, fügen Sie ein leeres Extraelement am Ende hinzu, um den Traversal im Folgenden Schritt zu vereinfachen
* Überqueren Sie Reihe und verursachen Sie die Variablen, die auf den $PATH_INFO Daten basieren

<>

wenn (isset ($PATH_INFO)) {

$vardata = explodieren („/“, $PATH_INFO);

$num_param = Zählimpuls ($vardata);

wenn ($num_param % 2 == 0) {

$vardata [] = '';
$num_param;
}

für (var $i = 1; $i <>

$$vardata [$i] = $vardata [$i 1];
}
}

? >

Archiviert unter Uncategorized |

Lassen Sie eine Antwort



Geben Sie bitte den Code ein, der unten gezeigt wird (überprüfen, dass Sie menschlich sind), bevor Sie Klicken Anmerkung einreichen.


Geschützt durch den Anmerkungs-Schutz Pro