Я установил небольшой скрипт для проверки обратных ссылок. Тем не менее я продолжаю получать ошибку
Предупреждение: preg_match () [function.preg-match]: Конечный разделитель '/' не найден в строке 17.
<?php function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); curl_close($ch); return $data; } function google_backlink($uri) { $url = 'http://www.google.com/search?q=link:facebook.com&hl=en&filter=0'; $v = file_get_contents_curl($url); preg_match('/<div id="resultStats">About \(.*?)\ ',$v,$s); $s_number = explode(".", $s[1]); $i = 0; if ($s[1]!=0) { return $s[1]; } else { return ($r[1]) ? $r[1] : '0'; } } echo "Google backlink = ".google_backlink($url)."<br />"; ?>
Что не так с preg_match('/<div id="resultStats">About \(.*?)\ ',$v,$s);
Ошибка очень ясна, вы не включили трейлинг /
:
preg_match('/<div id="resultStats">About \(.*?)\ /',$v,$s);
Я, честно говоря, сомневаюсь, что ваши персонажи-побеги хороши. Может, ты имел в виду \)
?
У него нет закрывающего /
preg_match('/ pattern /', $subject);
У вас есть начало (косая черта) /
но не закрытие (косая черта) /
Он ищет шаблон, который вы определяете между двумя слэшами.
Попробуйте изменить preg_match('/<div id="resultStats">About \(.*?)\ ',$v,$s);
To preg_match('/<div id="resultStats">About \(.*?)\ /',$v,$s);
/
является «разделителем», означающим, что он сообщает preg_match, где заканчивается шаблон регулярного выражения.