|
|
|
| Хотел сделать грабей одной страницы, но наткнулся на неприятность с русскими символами.
в первой регулярке хочу слизать все эл адреса, работает, все выдает,
во второй регулярке хочу слизать все телефоны кот есть на странице, как только доходит до русского текста Телефон, сразу ничего не работает, если изменить выражение на
preg_match_all("/[\&\a-z\;\s]<b>([0-9\-\,\(\)\s]{6,})<\/b>/iU", $data, $matches['phone']);
то всё работает, но тут уже нет точности, т.к кто-то модет записать где-то цифры и регулярка посчитает их номером телефона.
Хочу добавить, что когда я писал скрипт, я не использовал ф-цию file_get_contents, а просто взял кусок HTML кода с данной страницы вставил в скрипт и с ним работал, тогда всё получилось на УРА, а в нете.....
Прошу помощи, возможно кто-то с таким сталкивался, а кто-то еще столкнется.
$data = file_get_contents("http://www.rabota.kharkov.ua/poisk-v.php3?i=40&noshowa=1&vctg=0&s5b2=&s6b2=&s7b2=&s8b2=&s10b2=&s12b2=&showa=1&B1=%C8%F1%EA%E0%F2%FC");
preg_match_all("/<br>E-mail:[\&\a-z\;\s]<b>(.*)<\/b>/iU", $data, $matches['mail']);
preg_match_all("/<br>Телефон:[\&\a-z\;\s]<b>(.*)<\/b>/iU", $data, $matches['phone']);
echo'<pre>mail - ';print_r($matches['mail']['1']);echo'</pre>';
echo'<pre>phone - ';print_r($matches['phone']['1']);echo'</pre>';
|
| |
|
|
|
|
|
|
|
для: maxnag
(10.07.2007 в 19:21)
| | Возможно у вас не настроена локаль. Подробности в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=6084. | |
|
|
|
|
|
|
|
для: cheops
(11.07.2007 в 09:28)
| | никаких изменений. Может быть надо качать через fsockopen или как-то передавать заголовками какие-то параметры? Есть идеи? | |
|
|
|
|
|
|
|
для: cheops
(11.07.2007 в 09:28)
| | Попробовал через fsockopen, результат тотже.
$Url = "/poisk-v.php3?i=40&showa=1";
$a = fsockopen( "rabota.kharkov.ua", 80, $errno, $errstr ) or die( "$errno : $errstr" );
$out = "GET /$Url HTTP/1.0\r\n";
$out .= "Host: rabota.kharkov.ua\r\n";
$out .= "Referer: http://".$_SERVER['HTTP_HOST']."\r\n";
$out .= "Connection: close\r\n\r\n";
fwrite($a, $out);
while(!feof($a))
{
$line=fgets($a,4096);
if($end_head||trim($line)=="")
{
$buf .= $line;
$end_head=1;
}
}
fclose($a);
$data=$buf;
|
| |
|
|
|
|
|
|
|
для: cheops
(11.07.2007 в 09:28)
| | Ура, всё заработало, оказывается нужно просто было перекодировать файл с кодировки сервера в другую удобную для себя кодировку, вот эти строки
$data = file_get_contents("http://www.rabota.kharkov.ua/poisk-v.php3?i=40&showa=1");
$data=iconv("KOI8-R","WINDOWS-1251",$data);
...
|
Можно тему закрывать. | |
|
|
|