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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите разобрать

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Zveryugaz
Отправлено: 09 Марта, 2014 - 14:07:06
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




есть html
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div id="rates-deposit">
  3.         <table cellspacing="0">
  4.                 <tr>
  5.                         <th>EUR</th>
  6.                         <th>USD</th>
  7.                         <th>CNY</th>
  8.                         <th>JPY</th>
  9.                 </tr>
  10.                 <tr>
  11.                         <td class="u">50,50<ins></ins></td>
  12.                         <td class="u">36,45<ins></ins></td>
  13.                         <td class="u">5,96<ins></ins></td>
  14.                         <td class="n">0,36<ins></ins></td>
  15.                 </tr>
  16.         </table>
  17. </div>
  18.  

необходимо разобрать его на массив
по типу
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [EUR] => 50,50
  4.     [USD] => 36,45
  5.     [CNY] => 5,96
  6.     [JPY] => 0,36
  7. )
  8.  

не могу даже вытащить валюты
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match("#\{<tr>\}(.*)\{<\/tr>\}#is",$content,$array);
  3.  

не работает (
 
 Top
Мелкий Супермодератор
Отправлено: 09 Марта, 2014 - 14:42:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А где вы в ваших исходных данных видите символы { и }?


-----
PostgreSQL DBA
 
 Top
Zveryugaz
Отправлено: 09 Марта, 2014 - 14:53:06
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Мелкий пишет:
А где вы в ваших исходных данных видите символы { и }?

подскажите как правильно написать
 
 Top
duhon
Отправлено: 12 Марта, 2014 - 11:17:51
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Нояб. 2011  


Помог: 5 раз(а)




вам дали очень хороший намек (избавиться от фигурных скобок)
PHP:
скопировать код в буфер обмена
  1. $content = '<div id="rates-deposit">
  2.        <table cellspacing="0">
  3.                <tr>
  4.                        <th>EUR</th>
  5.                        <th>USD</th>
  6.                        <th>CNY</th>
  7.                        <th>JPY</th>
  8.                </tr>
  9.                <tr>
  10.                        <td class="u">50,50<ins></ins></td>
  11.                        <td class="u">36,45<ins></ins></td>
  12.                        <td class="u">5,96<ins></ins></td>
  13.                        <td class="n">0,36<ins></ins></td>
  14.                </tr>
  15.        </table>
  16. </div>';
  17. preg_match("#<tr>(.*?)</tr>#is",$content,$array);
  18. print_r($array);

вывод будет
CODE (htmlphp):
скопировать код в буфер обмена
  1. Array
  2. (
  3.     [0] => <tr>
  4.                         <th>EUR</th>
  5.                         <th>USD</th>
  6.                         <th>CNY</th>
  7.                         <th>JPY</th>
  8.                 </tr>
  9.     [1] =>
  10.                         <th>EUR</th>
  11.                         <th>USD</th>
  12.                         <th>CNY</th>
  13.                         <th>JPY</th>
  14.                
  15. )

единственное что еще упустили это добавить нежадный режим

(Отредактировано автором: 12 Марта, 2014 - 11:18:44)

 
 Top
Zveryugaz
Отправлено: 14 Марта, 2014 - 07:21:37
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




duhon пишет:
вам дали очень хороший намек (избавиться от фигурных скобок)

Вот что возвращается
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => EURUSDCNYJPY
  4.     [1] => EURUSDCNYJPY
  5. )
  6.  

(Отредактировано автором: 14 Марта, 2014 - 08:13:23)

 
 Top
duhon
Отправлено: 14 Марта, 2014 - 10:36:05
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Нояб. 2011  


Помог: 5 раз(а)




Zveryugaz пишет:

Вот что возвращается
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => EURUSDCNYJPY
  4.     [1] => EURUSDCNYJPY
  5. )
  6.  


Не понял, такое даже теоретически не может возвратить, регулярка не кушает td и th
вот мой пример протестный на всех версиях php http://3v4l[dot]org/KDvt6

Вот следующий шаг (попробуй)
CODE (htmlphp):
скопировать код в буфер обмена
  1. preg_match_all("#<th>(.*?)</th>#is",$content,$array);
и так далее для значений валют

(Отредактировано автором: 14 Марта, 2014 - 10:45:26)

 
 Top
Zveryugaz
Отправлено: 14 Марта, 2014 - 12:44:17
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




duhon пишет:

Вот следующий шаг (попробуй)
CODE (htmlphp):
скопировать код в буфер обмена
  1. preg_match_all("#<th>(.*?)</th>#is",$content,$array);
и так далее для значений валют


Так возвращается
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [0] => EUR
  6.             [1] => USD
  7.             [2] => CNY
  8.             [3] => JPY
  9.         )
  10.  
  11.     [1] => Array
  12.         (
  13.             [0] => EUR
  14.             [1] => USD
  15.             [2] => CNY
  16.             [3] => JPY
  17.         )
  18.  
  19. )
  20.  

Меня устраивает и так, спасибо большое, но если не трудно, можете подсказать почему два одинаковых массива?
 
 Top
duhon
Отправлено: 14 Марта, 2014 - 13:02:32
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Нояб. 2011  


Помог: 5 раз(а)




вообще то это только у вас они одинаковые Улыбка
а результат такой
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [0] => <th>EUR</th>
  5.             [1] => <th>USD</th>
  6.             [2] => <th>CNY</th>
  7.             [3] => <th>JPY</th>
  8.         )
  9.  
  10.     [1] => Array
  11.         (
  12.             [0] => EUR
  13.             [1] => USD
  14.             [2] => CNY
  15.             [3] => JPY
  16.         )
  17.  
  18. )


у вас исчезают теги при отображении. Вообще пользуйтесь дебагером.
 
 Top
Zveryugaz
Отправлено: 14 Марта, 2014 - 14:54:35
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




duhon пишет:
вообще то это только у вас они одинаковые Улыбка
а результат такой
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [0] => <th>EUR</th>
  5.             [1] => <th>USD</th>
  6.             [2] => <th>CNY</th>
  7.             [3] => <th>JPY</th>
  8.         )
  9.  
  10.     [1] => Array
  11.         (
  12.             [0] => EUR
  13.             [1] => USD
  14.             [2] => CNY
  15.             [3] => JPY
  16.         )
  17.  
  18. )


у вас исчезают теги при отображении. Вообще пользуйтесь дебагером.


Спасибо большое за беспокойство Улыбка
Прикреплено изображение (Нажмите для увеличения)
Снимок.JPG
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB