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 » PHP » Регулярные выражения » Нужна помошь

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

1. Bioslave - 01 Февраля, 2010 - 21:06:49 - перейти к сообщению
Мне нужна спарсить с сайта вот этот кусочек :

CODE (html):
скопировать код в буфер обмена
  1. <table border="0" width="90%" cellspacing="0" cellpadding="0">
  2.                                                                                         <tr>
  3.                                                                                                 <td width="11" height="119">
  4.                                                                                                 <font size="1">
  5.  
  6.                                                                                                 <img border="0" src="images/lalalalal.jpg" width="11" height="119"></font></td>
  7.                                                                                                 <td width="100%" background="images/lalalalalal.jpg">
  8.                                                                                                 <table border="0" cellspacing="0" cellpadding="0">
  9.                                                                                                         <tr>
  10.                                                                                                                 <td width="561"><b><font size="2">Исполнитель:</font></b><font size="2"> vvvvvvvvv<br>
  11.                                                                                                                 <b>Name ttttt:</b> aaaaaaaaaaa<br>
  12.                                                                                                                 <b>Play:</b>Play 4:51</font></td>
  13.  
  14.                                                                                                                 <td width="232">
  15.                                                                                                                 <p align="center">
  16.                                                                                                                 <a href="file.php?id=MjI1MTQ5NQ==&file=yayayayayayay.wmf">
  17.                                                                                                                 <img border="0" src="iimages/lalalalal.jpg" width="152" height="50" align="right" alt="Pusk!">
  18.                                                                                                                 </a></td>
  19.                                                                                                         </tr>
  20.                                                                                                         <tr>
  21.                                                                                                                 <td width="793" colspan="2">&nbsp;</td>
  22.                                                                                                         </tr>
  23.  
  24.                                                                                                         <tr>
  25.                                                                                                                 <td width="793" colspan="2">
  26.                                                                                                                 <table border="0" width="100%" cellspacing="0" cellpadding="0">
  27.                                                                                                                         <tr>
  28.                                                                                                                                 <td width="10" height="35">
  29.                                                                                                                                 <img border="0" src="images/lalala.jpg" width="10" height="35"></td>
  30.                                                                                                                                 <td bgcolor="#6690B9">
  31.                                                                                                                                 <p align="center">
  32.                                                                                                                                 <b>
  33.  
  34.                                                                                                                                 <font color="#FDFDFD">
  35.                                                                                                                                 <div id="mp3_1">Kino!</div>
  36.                                                                                                                                 </font></b>
  37.                                                                                                                                 <script type='text/javascript'>
  38.                                                                                                                                 var s1 = new SWFObject('embed/player.swf','ply','570','20','9','#ffffff');
  39.                                                                                                                                 s1.addParam('allowfullscreen','true');
  40.                                                                                                                                 s1.addParam('allowscriptaccess','always');
  41.                                                                                                                                 s1.addParam('wmode','opaque');
  42.                                                                                                                                 s1.addParam('flashvars','file=file.php?id=MjI1MTQ5NQ==.wmf');
  43.                                                                                                                                 s1.write('mp3_1');
  44.                                       </script>
  45.                                                                                                                                 </td>
  46.                                                                                                                                 <td width="10" height="35">
  47.                                                                                                                                 <img border="0" src="images/lalalalala.jpg" width="10" height="35"></td>
  48.                                                                                                                         </tr>
  49.  
  50.                                                                                                                 </table>
  51.  


Вот как я его парсю :

CODE (htmlphp):
скопировать код в буфер обмена
  1. $string = file_get_contents('http://lalalalal.com/result.php?dddd=xaaaaa');
  2. preg_match_all('/<table border="\0\" width="\90%\" cellspacing="\0\" cellpadding="\0\">(.*?)<\/table>
  3. /ism',$string,$values);
  4. $values = $values[1];
  5. print_r($values);


На выходе : Array ( ) и всё что не так ? уже 3 сутки вожусь, жду любой помоши.
2. kochan10 - 01 Февраля, 2010 - 21:12:44 - перейти к сообщению
Наверное так:
PHP:
скопировать код в буфер обмена
  1. $string = file_get_contents('http://lalalalal.com/result.php?dddd=xaaaaa');
  2. preg_match_all('/<table border="0" width="90%" cellspacing="0" cellpadding="0">(.*?)<\/table>
  3. /ism',$string,$values);
  4. $values = $values[1];
  5. print_r($values);

Не вижу смысла экранировать здесь что-либо кроме слэшей. Или я не прав?
3. Bioslave - 01 Февраля, 2010 - 21:15:21 - перейти к сообщению
Я это тоже пробовал всё равно На выходе : Array ( ) и всё хоть об стенку бейся.
4. kochan10 - 01 Февраля, 2010 - 21:16:21 - перейти к сообщению
Мда уж... Пока ничего в голову не лезет, завтра подумаю.
5. trot - 01 Февраля, 2010 - 22:36:37 - перейти к сообщению
Не надо делать переносов строк в регулярном выражении. И замените все пробелы в регулярном выражении на \s+. Например

CODE (htmlphp):
скопировать код в буфер обмена
  1. preg_match_all('/<table\s+border="0"\s+width="90%"\s+cellspacing="0"\s+cellpadding="0">(.*?)<\/table>/ism',$str,$values);
6. Bioslave - 02 Февраля, 2010 - 10:08:32 - перейти к сообщению
Ну опять тоже самое Array ( ) тоесть пустой результат но почему ?
7. z80b - 02 Февраля, 2010 - 10:53:25 - перейти к сообщению
Тут скорее всего дело в (.*?), т.к. точка не включает символы перевода строки.
Попробуй ([\w\W]*) например.
8. Viper - 02 Февраля, 2010 - 11:06:36 - перейти к сообщению
не работает потому-что нужно экранировать одинарные кавычки
9. Bioslave - 02 Февраля, 2010 - 11:17:02 - перейти к сообщению
Всё отлично всем спасибо за помошь, разобрался нужна было кавычки тоже экронировать )))
10. kochan10 - 02 Февраля, 2010 - 15:22:15 - перейти к сообщению
А как двойные кавычки пересекаются с одинарными? В смысле, зачем их экранировать?
11. Viper - 02 Февраля, 2010 - 16:16:48 - перейти к сообщению
kochan10 пишет:
А как двойные кавычки пересекаются с одинарными? В смысле, зачем их экранировать?


а вот так

string = 'access d\'ata roam\'ing';
string = "border=\"0\"";
12. kochan10 - 02 Февраля, 2010 - 16:24:49 - перейти к сообщению
Вот в том-то и дело, что там сам паттерн ограничен одинарными, а экранирует автор двойные внутри. Вот я и спрашиваю: зачем?
13. STRELOK - 02 Февраля, 2010 - 19:52:33 - перейти к сообщению
Эта регулярка точно работает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. '#<\s*table\s+border=\"0\"\s+width=\"90%\"\s+cellspacing=\"0\"\s+cellpadding=\"0\"\s*>(.*?)<\/\s*table\s*>#si'


Если надо написать регулярки на извлечение других параметров обращайся.

 

Powered by ExBB FM 1.0 RC1