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

WBOY
Release: 2016-06-23 14:21:38
Original
990 people have browsed it

本帖最后由 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]);?>
Copy after login


charset=\"000000\">102<\/a><\/li>\n\t\t\t<\/ul>\n<\/div>\n"}
Copy after login
Copy after login

这是网页直接输出的内容,我需要中间那个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);
Copy after login

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

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

charset=\"000000\">102<\/a><\/li>\n\t\t\t<\/ul>\n<\/div>\n"}
Copy after login
Copy after login


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

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

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template