2017-10-17 10 views
-1

Ich muss eine ID erfassen, die Teil einer URL innerhalb eines Iframe-Tags ist. Ich weiß, das mit Regex getan werden kann, aber ich bin es nicht sehr gut, ich ein paar Versuche gemacht, konnte aber kein Ergebnis bekommen, würde iframe sein, dies (ID können variieren):Wählen Sie einen Teil der URL in einem iframe-Tag

<iframe src="https://www.example.com/embed/ph57d6z9fa1349b" frameborder="0" height="481" width="608" scrolling="no"></iframe> 

Und die ID ich möchte würde dies bekommen sein:

ph57d6z9fa1349b 
+0

Ist das übertrieben? [https://3v4l.org/v01sD](https://3v4l.org/v01sD). xD – FirstOne

Antwort

1

schließen können Sie Teilen Sie die Zeichenfolge mit der Regex.

$re = '/\<iframe[^\>]+src\="(.+?)\/([A-Za-z0-9]+)"/'; 
$str = '<iframe src="https://www.example.com/embed/ph57d6z9fa1349b" frameborder="0" height="481" width="608" scrolling="no"></iframe>'; 

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); 

// Print the entire match result 
var_dump($matches); 

Wenn Sie ID-Codes aufgelistet werden sollen (wie 'ph57d6z9fa1349b'), dann können Sie dies tun:

<?php 
$re = '/\<iframe[^\>]+src\="(.+?)\/([A-Za-z0-9]+)"/'; 
$str = '<iframe src="https://www.example.com/embed/ph57d6z9fa1349b" frameborder="0" height="481" width="608" scrolling="no"></iframe>'; 

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); 

foreach ($matches as $match) { 
    $id = $match[2]; // The required id code 
    echo $id;   // Echo it 
} 
?> 
0

diese Regex entspricht dem Quellattribut und setzen Sie Ihre desided id in Gruppe 1.
src=".+\/(.+?)"

  • Der erste Teil src=" entspricht den Beginn des Attributs
  • .+\/ entspricht den URL Körper bis zum letzten Schrägstrich (gierig)
  • (.+?)" Spiel Ihrer ID (faul) und das doppelten Anführungszeichen, die das Attribut
Verwandte Themen