Heim > Artikel > Backend-Entwicklung > PHP-Sammlungsproblem, wie gehe ich mit mehreren Leerzeichen und Zeilenumbrüchen im Code um?
Der Quellcode ist:
<code><a class="figure figure-180236 " data-qidanadd-albumid="543438400" data-qidanadd-episode="0" data-qidanadd-channelid="1" data-qidanadd-tvid="543438400" data-qidanadd-vip="0" data-widget-qidanadd="qidanadd" data-widget-block="block" data-block-type="qs1404043" data-searchpingback-elem="link" data-searchpingback-param="ptype=1-1" href="http://www.iqiyi.com/v_19rr9g9wks.html?fc=87451bff3f7d2f4a#vfrm=2-3-0-1" data-playsrc-linktype="play" data-playsrc-elem="pic" data-pb="rtgt=iqiyi&p2=9000" target="_blank"></code>
Der PHP-Code der Sammlung lautet:
<code>preg_match("#<a class=\"figure figure-180236 \" data-qidanadd-albumid=\"543438400\" data-qidanadd-episode=\"0\" data-qidanadd-channelid=\"1\" data-qidanadd-tvid=\"543438400\" data-qidanadd-vip=\"0\" data-widget-qidanadd=\"qidanadd\" data-widget-block=\"block\" data-block-type=\"qs1404043\" data-searchpingback-elem=\"link\" data-searchpingback-param=\"ptype=1-1\" href=\"(.*?)\" data-playsrc-linktype=\"play\" data-playsrc-elem=\"pic\" data-pb=\"rtgt=iqiyi&p2=9000\" target=\"_blank\">#",$content,$array);</code>
Aber die Informationen können in diesem Fall nicht erfasst werden? Lösen Sie
Der Quellcode ist:
<code><a class="figure figure-180236 " data-qidanadd-albumid="543438400" data-qidanadd-episode="0" data-qidanadd-channelid="1" data-qidanadd-tvid="543438400" data-qidanadd-vip="0" data-widget-qidanadd="qidanadd" data-widget-block="block" data-block-type="qs1404043" data-searchpingback-elem="link" data-searchpingback-param="ptype=1-1" href="http://www.iqiyi.com/v_19rr9g9wks.html?fc=87451bff3f7d2f4a#vfrm=2-3-0-1" data-playsrc-linktype="play" data-playsrc-elem="pic" data-pb="rtgt=iqiyi&p2=9000" target="_blank"></code>
Der PHP-Code der Sammlung lautet:
<code>preg_match("#<a class=\"figure figure-180236 \" data-qidanadd-albumid=\"543438400\" data-qidanadd-episode=\"0\" data-qidanadd-channelid=\"1\" data-qidanadd-tvid=\"543438400\" data-qidanadd-vip=\"0\" data-widget-qidanadd=\"qidanadd\" data-widget-block=\"block\" data-block-type=\"qs1404043\" data-searchpingback-elem=\"link\" data-searchpingback-param=\"ptype=1-1\" href=\"(.*?)\" data-playsrc-linktype=\"play\" data-playsrc-elem=\"pic\" data-pb=\"rtgt=iqiyi&p2=9000\" target=\"_blank\">#",$content,$array);</code>
Aber die Informationen können in diesem Fall nicht erfasst werden? Lösen Sie
Bitte studieren Sie den regulären Ausdrucksmodus von PHP. Es enthält ein m, was bedeutet, dass der mehrzeilige Abgleich Ihren Anforderungen entsprechen kann, http://php.net/manual/en/refe....
Es wird empfohlen, DiDom für die HTML-Analyse zu verwenden
DOM-Auswahl ähnlich wie bei jquery
Letztendlich möchten Sie nur die href-Linkadresse des Hyperlinks erhalten, oder? Sie haben zu viele reguläre Ausdrücke geschrieben. Außerdem ist es schwieriger, sie abzugleichen hat wie oben erwähnt spezielle Mustervergleichszeichen, ich verwende normalerweise s