Warum verwenden Sie nicht parse_url()
und parse_str()
Funktionen? Es ist eine viel sicherere Lösung.
Reguläre Ausdrücke
Ich bin keineswegs ein regex-pert, aber das Folgende entfernt das kaufmännische Und-Zeichen und alles Folgende:
%Vor% Erzeugt http://www.youtube.com/watch?v=9DhSwsbKJQ4
.
Schlag es in Stücke!
Die andere Option besteht darin, explode()
zu verwenden und die Zeichenkette basierend auf dem Vorkommen von &
zu teilen, was zu einem Array führt, in dem der 0
index die gewünschte Ausgabe enthält.
In diesem Fall gibt array_shift()
das Element zurück, das sich im Index 0
befindet. Dies ist Ihr Pfad.
Ja. Verwenden Sie diesen Code vor Ihrem einen:
%Vor% Nun wird die Variable $message
auf http://www.youtube.com/watch?v=9DhSwsbKJQ4
gesetzt.
Wenn Sie die videoID nur wünschen, schlage ich vor, zu einer Regex wie folgt zu wechseln:
%Vor%Getestet auf regextester.com
Sie könnten, wie bereits erwähnt, zuerst alles bis zum & amp; amp; oder Sie könnten einfach Folgendes tun (nur die Regex für convince eingeben).
%Vor%Um es allgemeiner zu machen, könnten Sie Folgendes tun:
%Vor% Die Regex muss nicht mit allem übereinstimmen. Alle :? , die verhindern sollen, dass preg_replace den Verweis behält, und damit sollten auch verkürzte URLs übereinstimmen. In diesem Fall würde die Referenz in gespeichert werden.
Probieren Sie pathinfo ()
ausnach Kommentar bearbeiten: versuchen Sie Folgendes:
%Vor%Die Ausgabe ist:
%Vor%Nicht ein perfektes Beispiel, aber Sie können alle Schlüssel / Werte über diese Methode erhalten.
edit2: Entschuldigung, ich hatte es eilig und bearbeitete meinen Post für genau das, was Sie brauchen.
%Vor%