Demo:
<code>$html='<div class="p-img"><a href="url"></a></div><div class="p-img"><img src="xx"></div>'; preg_match_all('/<div class="p-img">(.*?)<\/div>/', $html, $out); var_dump($out); </code>
Ich hoffe, dass die Zielzeichenfolge $html mit
Verwenden Sie den Crawler, um die Dom-Struktur aus dem Internet abzurufen. Sie enthält viele Leerzeichen und Zeilenumbrüche. Wenn Sie mit dem Ziel-HTML übereinstimmen möchten, müssen Sie nach dem regulären Ausdruck das Musterkorrektursymbol hinzufügen
<code>preg_match_all('/<div class="p-img">(.*?)<\/div>/is', $html, $out);</code>
/s behandelt die Zeichenfolge als einzelne Zeile und das Zeilenumbruchzeichen als gewöhnliches Zeichen
Antwortinhalt:
<code>$html='<div class="p-img"><a href="url"></a></div><div class="p-img"><img src="xx"></div>'; preg_match_all('/<div class="p-img">(.*?)<\/div>/', $html, $out); var_dump($out); </code>
/ich ignoriere die Groß-/Kleinschreibung
<code>preg_match_all('/<div class="p-img">(.*?)<\/div>/is', $html, $out);</code>
/s behandelt die Zeichenfolge als einzelne Zeile und das Zeilenumbruchzeichen als gewöhnliches Zeichen
Ausgabe:
<code>$html='<div class="p-img"><a href=\'url\'></div><div class="p-img"><img src=\'xx\'></div>'; preg_match_all('/<div\sclass="p\-img">(.*?)<\/div>/is', $html, $out); var_dump($out);</code>
Was soll ich sagen? Das
<code>array(2) { [0]=> array(2) { [0]=> string(39) "<div class="p-img"><a href='url'></div>" [1]=> string(39) "<div class="p-img"><img src='xx'></div>" } [1]=> array(2) { [0]=> string(14) "<a href='url'>" [1]=> string(14) "<img src='xx'>" } }</code>
sein und /
sollte nicht in /
'
maskiert werden
'
Ich kann es nicht ausführen. Wissen Sie, ob es ein Problem mit Ihrer Grammatik oder Regelmäßigkeit ist?
Die Antwort ist, wo $html definiert ist.
-Nummer muss maskiert werden