Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите спарсить одне поле
Форумы портала PHP.SU » » Вопросы новичков » Помогите спарсить одне поле

Страниц (1): [1]
 

1. event - 19 Августа, 2012 - 05:34:13 - перейти к сообщению
Привет.
Есть ссылка http://rutor.org/torrent/215393/, хочу спарсить, все что после Перевод:, то есть на выходе должно прийти (Профессиональный (полное дублирование)), пробовал сам но не получается Не понял , вот:
PHP:
скопировать код в буфер обмена
  1. preg_match("#<b>Перевод: </b>(.*)<br />#s", $html, $voice);    
  2. $voice = trim($voice['1']);


Заранее спасибо.
2. EuGen - 19 Августа, 2012 - 10:46:21 - перейти к сообщению
Страница в utf, попробуйте так:
PHP:
скопировать код в буфер обмена
  1. preg_match('/\<b\>Перевод\:\s+\<\/b\>([^\<\>]*?)\<br\s*\/\>/ui', $sText, $rgMatches);
  2. //var_dump($rgMatches);
3. event - 19 Августа, 2012 - 17:22:13 - перейти к сообщению
EuGen
Не работает Ваш код, вот делаю так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function gzdecode($data){
  4.     $g=tempnam('/tmp','ff');
  5.     @file_put_contents($g,$data);
  6.     ob_start();
  7.     readgzfile($g);
  8.     $d=ob_get_clean();
  9.     return $d;
  10. }
  11.  
  12. $getpage = gzdecode(file_get_contents("http://rutor.org/torrent/215393/"));
  13.  
  14. preg_match('/\<b\>Перевод\:\s+\<\/b\>([^\<\>]*?)\<br\s*\/\>/ui', $getpage, $rgMatches);
  15. var_dump($rgMatches);
  16.  
  17. ?>


Получаю:
Warning: preg_match() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset 6 in C:\AppServ\www\2.php on line 14
NULL
4. EuGen - 19 Августа, 2012 - 17:29:06 - перейти к сообщению
event
Так почему Вы ищете не в содержимом страницы, а в файле?
5. event - 19 Августа, 2012 - 17:32:47 - перейти к сообщению
То есть? Всегда так делаю...
(Добавление)
Дайте пример, пожалуйста...
(Добавление)
Вроде все правильно я делаю. вот например если парсю название, то работает.
PHP:
скопировать код в буфер обмена
  1. $getpage = file_get_contents("http://rutor.org/torrent/215393/");
  2.  
  3. preg_match_all( "/.*<h1>(.*)<\\/h1>.*/isU", $getpage, $matchesname);
  4. $torrentname = iconv("UTF-8", "windows-1251", $matchesname[1][0]);
  5. echo $torrentname;

(Добавление)
Пробовал сам написать, но тоже не работает:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $getpage = file_get_contents("http://rutor.org/torrent/215393/");
  4.  
  5. preg_match_all("#<b>Перевод: </b>(.*?)<br />#", $getpage, $matchesname);
  6. var_dump($matchesname);
  7.  
  8. ?>
и вот так:
PHP:
скопировать код в буфер обмена
  1. preg_match_all("/.*<b>Перевод: <\\/b>(.*)<br \\/>.*/isU", $getpage, $matchesname);
  2. var_dump($matchesname);


Но нифика... Недовольство, огорчение
(Добавление)
EuGen, я вроде понял о чем ты, ты имеешь ввиду что я ищу на целой странице, а нужно брать именно тот кусок текста (самого описания), верно?

 

Powered by ExBB FM 1.0 RC1