Parsen von Youtube-Links automatisch

8
%Vor%

Das funktioniert gut, wenn youtube link so aussieht:

  

Ссылка

Es gibt jedoch ein Problem, wenn der Youtube-Link so aussieht:

  

Ссылка

Das Ergebnis ist iframe und Text feature=topvideos_music nach iframe. Gibt es eine Möglichkeit, alles nach & in Youtube Link zu entfernen?

    
tfe 07.06.2011, 14:20
quelle

8 Antworten

3

Warum verwenden Sie nicht parse_url() und parse_str() Funktionen? Es ist eine viel sicherere Lösung.

%Vor%     
Crozin 07.06.2011 14:30
quelle
2

Sie sollten besser die URL mit parse_url () / parse_str () zerlegen und dann von Grund auf neu erstellen.

%Vor%

Während das Parsen mit Regex funktioniert, dreht es sich irgendwann um und beißt dich. Dies ist ein bisschen mühsamer, aber auf lange Sicht sicherer.

    
Marc B 07.06.2011 14:29
quelle
1

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.

%Vor%

In diesem Fall gibt array_shift() das Element zurück, das sich im Index 0 befindet. Dies ist Ihr Pfad.

    
Sampson 07.06.2011 14:25
quelle
1

Kurze Version.

%Vor%     
Panos Kal. 15.12.2011 10:34
quelle
0

Ja. Verwenden Sie diesen Code vor Ihrem einen:

%Vor%

Nun wird die Variable $message auf http://www.youtube.com/watch?v=9DhSwsbKJQ4 gesetzt.

    
kongr45gpen 07.06.2011 14:25
quelle
0

Wenn Sie die videoID nur wünschen, schlage ich vor, zu einer Regex wie folgt zu wechseln:

%Vor%

Getestet auf regextester.com

    
Mick Hansen 07.06.2011 14:32
quelle
0

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.

    
Lumbendil 07.06.2011 14:39
quelle
0

Probieren Sie pathinfo ()

aus

nach 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%     
Arda 07.06.2011 14:34
quelle

Tags und Links