Heim > Backend-Entwicklung > PHP-Tutorial > 这个php正则为什么不能工作呢?在线等~

这个php正则为什么不能工作呢?在线等~

WBOY
Freigeben: 2016-06-23 14:21:38
Original
1000 Leute haben es durchsucht

本帖最后由 chuantian15 于 2013-09-12 20:48:41 编辑

<?phprequire_once 'simple_html_dom.php';$url = $_GET['url'];$html = file_get_html($url);$m = array(preg_match('/charset=\"(.*)\">(\/d+)<\/a><\/li>\n\t\t\t<\/ul>\n<\/div>\n"}/',$html,$m));print_r($m[0]);?>
Nach dem Login kopieren


charset=\"000000\">102<\/a><\/li>\n\t\t\t<\/ul>\n<\/div>\n"}
Nach dem Login kopieren
Nach dem Login kopieren

这是网页直接输出的内容,我需要中间那个102,因为这里是最大的页码,前面有很多个charset=\"000000\">,所以只能通过尾部<\/a><\/li>\n\t\t\t<\/ul>\n<\/div>\n"}判断位置。


在线等~


回复讨论(解决方案)

$m = array(preg_match(...));
print_r($m[0]);
这种用法实在让人理解不了
另外正则引擎也要处理转义,所以要想把 \n 正确传递给正则引擎要经过两次转义要加很多 \

$str = 'charset=\"000000\">102<\/a><\/li>\n\t\t\t<\/ul>\n<\/div>\n"}';preg_match('/charset=\\\\"(.*)\\\\">(\d+)<\\\\\\/a><\\\\\\/li>\\\\n\\\\t\\\\t\\\\t<\\\\\\/ul>\\\\n<\\\\\\/div>\\\\n"}/',$str,$m);print_r($m);
Nach dem Login kopieren

谢谢hengyu654,不过最终返回的结果,是整个网站的源码,不过看起来有希望可以得到102了。

网页输出的直接内容,就是这么一段,有没有比正则更好的获取方式呢?

charset=\"000000\">102<\/a><\/li>\n\t\t\t<\/ul>\n<\/div>\n"}
Nach dem Login kopieren
Nach dem Login kopieren


比如先查找\n\t\t\t\n\n"},然后把前面的数字提取,直到发现charset=\"000000\">就停下来

谢谢你的代码, 全部搞定了!!!!!!!

hengyu654学霸、土豪、大哥!来亲一个~~~么么哒~~

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage