|
|
|
| Ни как не могу сообразить как правильно сделать. Через поиск пересмотрел примеры и не получается вытащить кусок текста из HTML.
Есть кусок кода страницы сайта.
<tr>
<td height="80"><span class="bottomtext0">Телефон (388) 385-02-62</td>
<td></td>
</tr>
<tr>
<td class="bottomtext">Вопрос / Ответ</td>
<td height="60"></td>
|
Необходимо вытащить в переменную кусок текста от слова Телефон до </td>. Т.е. получить из текста кусок Телефон (388) 385-02-62</td>
Как это правильно сделать с помощью регулярных выражений.
Спасибо заранее! | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(15.01.2009 в 21:57)
| | Не известна вся страница, но по вашему примеру
<pre>
<?
$text='<tr>
<td height="80"><span class="bottomtext0">Телефон (388) 385-02-62</td>
<td></td>
</tr>
<tr>
<td class="bottomtext">Вопрос / Ответ</td>
<td height="60"></td>';
preg_match_all("#<span class=\"bottomtext0\">(.+?)</td>#",$text,$out);
print_r($out);
?>
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(15.01.2009 в 22:47)
| | А русский текст не ищет данная функция?
вот в этой ситуации возвращает пустое значение, а не этот текст (388) 385-02-62.
<?php
$text='<tr>
<td height="80"><span class="bottomtext0">Телефон (388) 385-02-62</td>
<td></td>
</tr>
<tr>
<td class="bottomtext">Вопрос / Ответ</td>
<td height="60"></td>';
preg_match_all("#Телефон(.+?)</td>#",$text,$out);
print_r($out);
?>
|
Как в таком случае быть? | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(16.01.2009 в 08:22)
| | Я разобрался. В слове телефон была английская буква "е".
А как из ассоциативного массива данные доставать?
У меня всегда беда с работой с массивами ни как не могу правильно с ними научиться работать.
Вот так не работает :-(
$z1=$out[1,0];
echo($zz);
|
Хотя данные в массиве присутствуют
Array
(
[0] => Array
(
[0] => Tелефон (388) 385-02-62</td>
)
[1] => Array
(
[0] => (388) 385-02-62
)
) | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(16.01.2009 в 10:05)
| | $z1=$out[1][0];
В php не многомерных массивов. Только одномерные.
Как только Вы это поймете, сразу с массивами станет работать легко. | |
|
|
|
|
|
|
|
для: Trianon
(16.01.2009 в 10:53)
| | Аааа! Вон оно как!? Ну теперь практически все на свои места встало, а то я ни как не мог понять эти ассоциативные массивы.
Спасибо огромное!! | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(16.01.2009 в 11:04)
| | Еще последний вопрос по содержимому массива.
Для чего в массиве 2-а значения, а не одно?
Ведь результат функции
preg_match_all("#Телефон(.+?)</td>#",$text,$out);
|
должен быть "(388) 385-02-62" ? | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(16.01.2009 в 11:19)
| | preg_match_all (по умолчанию) возвращает массив, построенный по количеству скобок + 1 . В нулевом элементе - сопоставление со всем шаблоном , в первом - с шаблоном первой скобки, и т.д.
Вы в мануал заглядывали? | |
|
|
|
|
|
|
|
для: Trianon
(16.01.2009 в 11:25)
| | Хорошего русского мануала у меня к сожалению нет, иначе было бы проще почитать мануал чем народ напрягать. | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(16.01.2009 в 11:41)
| | Простите, а почему он у меня есть, а у Вас нет? | |
|
|
|