private function pageScrape( $url )
{
$page_stream = file_get_contents( $url );
$pattern = '/<link\s+(?=[^>]*rel="(?:[Ss]hortcut\s)?[Ii]con"\s+)(?:[^>]*href="(.+?)").*/>/';
preg_match( $pattern, $page_stream, $matches );
print_r( $matches );
// echo $page_stream;
}
给出错误:
警告:preg_match()[function.preg-match]:未知的修饰符 '&GT;'在 /home/foo/public_html/foo/source/class.ControlBookmark.php 的 在线 16
关于pcre的PHP.net参考
答案 0 :(得分:2)
在正则表达式模式变量$pattern
中使用正则表达式边界/分隔符,如下所示:
$pattern = '#<link\s+(?=[^>]*rel="(?:[Ss]hortcut\s)?[Ii]con"\s+)(?:[^>]*href="(.+?)").*/>#';
答案 1 :(得分:1)
您的问题是由于表达式末尾未转义的斜杠。试试这个:
$pattern = '/<link\s+(?=[^>]*rel="(?:[Ss]hortcut\s)?[Ii]con"\s+)(?:[^>]*href="(.+?)").*\/>/';