我的代码中出现此错误:
Warning: preg_match_all(): Unknown modifier 'c' in C:\xampp\htdocs\stage\ripper.php on line 6
你能告诉我这是什么吗?
$htmlcode = file_get_contents($url);
$pattern = "/itemprop=\"description\"\>(.*)\<\/div\>(.*)\<li\>Taal:(.*)\<\/li\>(.*)\>(.*)\<\/div\>/class=\"noscript\"\>(.*)\<\/div\>/sU";
preg_match_all($pattern, $htmlcode, $matches); # This is line 6:
我已经尝试找到这样的东西,却找不到任何东西......
答案 0 :(得分:3)
问题出在$pattern
- 你还没有逃脱所有斜线:
$pattern = "/itemprop=\"description\"\>(.*)\<\/div\>(.*)\<li\>Taal:(.*)\<\/li\>(.*)\>(.*)\<\/div\>/class=\"noscript\"\>(.*)\<\/div\>/sU"
在“课堂”前面有一个没有逃脱的斜线。修复应该是显而易见的......
通过在正则表达式周围使用不同的分隔符,您可以让自己的生活更轻松,这样您就不必逃避斜线。以下是使用#
代替/
的示例:
$pattern = "#itemprop=\"description\">(.*)</div>(.*)<li>Taal:(.*)</li>(.*)>(.*)<div class=\"noscript\">(.*)</div>#sU";
您的正则表达式中还存在许多错误 - 无效的html等,因此它与有效的html文档中的任何内容都不匹配。我已经解决了大部分问题,但这部分看起来不正确:
</li>(.*)>(.*)
我不知道你要在那里设置第一个捕捉括号,但你可能会得到类似</ul
或<li
的内容。