2014-02-07 20 views
6

So bekomme ich einen Abschnitt der URL mit PHP. Dieser Abschnitt enthält möglicherweise nachgestellte "?" Werte. Also zum Beispiel: Ich explodiere die URL: stackoverflow.com/questions und ich möchte Fragen bekommen, also mache ich etwas wie explode ('/',$url). In diesem Beispiel könnte die URL wie folgt aussehen: stackoverflow.com/questions?query. Ich will diese Endabfrage nicht, also tue ich explode ('?',$questionurl[no.]). Wie verhält sich das Explode-Handle, wenn die Zeichenfolge das Trennzeichen nicht enthält? Gibt es nur die Zeichenfolge zurück oder gibt sie false zurück?Wenn Sie eine Zeichenfolge explodieren und die Zeichenfolge das Trennzeichen nicht enthält, tritt ein Fehler auf?

Ich habe das php-Dokument durchgelesen und habe Fragen im Stack durchgesehen, kann aber dieses Szenario nicht genau finden.

Ich wäre in der Lage, dies selbst zu testen, aber die Umgebung, in der ich arbeite, ist eingerichtet, um mit Drupal zu arbeiten. Als solches würde es ziemlich viel Herumprobieren erfordern, um eine einfache Abfrage zu testen, ich dachte, dass es für alle und zukünftige Parteien hier nützlicher wäre.

+1

Nein, es gibt ein Array mit entweder keinem Element oder einem einzelnen Element zurück, abhängig vom Wert des 'limit' Arguments ... genau wie in der [Dokumentation (http://www.php.net /manual/en/function.explode.php) ... "Wenn __delimiter__ einen Wert enthält, der nicht in __string__ enthalten ist und ein __negative__ Limit verwendet wird, wird ein leeres Array zurückgegeben, andernfalls wird ein Array zurückgegeben, das __string__ enthält. " –

+0

So gibt es den Stich in einem Array zurück, wie es war. Also sollte ich $ url [0] anrufen. –

+0

FYI - Sie können eine 'test.php' Datei irgendwo auf Ihrem Server machen, setzen Sie Code innerhalb' 'Tags und es wird funktionieren. Es hat nichts mit Drupal zu tun. –

Antwort

8

Bitte lesen Sie die PHP-Dokumente. Es existiert aus einem bestimmten Grund.

http://be2.php.net/explode

Gibt ein Array von Zeichenketten durch Aufteilen des String-Parameter auf Grenzen, die durch das Trennzeichen gebildet erstellt.

Wenn das Trennzeichen eine leere Zeichenfolge ("") ist, gibt explode() FALSE zurück. Wenn delimiter einen Wert enthält, der nicht in string enthalten ist und ein negatives Limit verwendet wird, wird ein leeres Array zurückgegeben, andernfalls wird ein Array zurückgegeben, das string enthält.

+1

Ich denke, es war die "negative Grenze", die mich warf, ich war mir nicht sicher, was genau das damit meinte. –

+2

Lesen Sie die Manualseite und schauen Sie sich das Beispiel an, in dem Limit verwendet wird (dritter Parameter). Dann wirst du es verstehen;) –

+0

Wenn du die Parameter, die in einer PHP-Funktion verwendet werden, nicht verstehst, dann musst du den Parameterabschnitt aus den Dokumenten der Repräsentativfunktion lesen. –

0

Es werden keine Fehler ausgegeben - es wird ein Array mit einem Element zurückgegeben, das die gesamte Zeichenfolge enthält (denken Sie daran, dass explode ein Array zurückgibt).

+0

sollte es ein Kommentar sein, keine Antwort –

+0

Sorry, ich bin relativ neu hier. Ist es zu einfach, eine Antwort zu sein? Gibt es eine Grenze für die Einfachheit der Antwort auf SO? – cbreezier

0

Von php.net explode() Handbuch Seite:

Wenn Trennzeichen einen Wert enthält, der nicht in String enthalten ist, und eine negative Grenze verwendet wird, dann wird ein leeres Array zurückgegeben wird, sonst ein Array mit String wird zurückgegeben.