Разбор переменной

12
Rock'n'rolla
На сайте с 14.09.2009
Offline
146
422

Есть у меня переменная, которая содержит и текст и хтмл код и т.д.

Подскажите функции (если можете и как ими работать), чтобы можно было вытаскивать из переменной нужные мне значения. Я нашел такие как preg_match, preg_match_all , но не разобрался к сожалению, как пользоваться.

Заранее, спасибо большое.

"Vulcan-Bit - лучшая партнерка в сети" (http://vulcan-bit.com?invite=artem_kozirev) KMA.BIZ - Партнерка с крутым конвертом и отчислениями в долларах. Лить! (http://kma.biz)
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#1

Примеры давай.

Что есть и что надо получить.

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#2
Примеры давай.
Что есть и что надо получить.

Есть значит много строк кода и есть там место, оно начинается с <table>

Вот надо все данные из этой таблицы то и вытащить.

Т.е. Берем дату, название, значение, т.е. <td>10.12.2013</td><td>Велосипед</td><td>GT</td>

Потом идет опять всякий мусор и опять

<td>11.12.2013</td><td>Велосипед</td><td>Stels</td>

Так вот вытаскиваем пока не кончаться все эти строки и формируем из этих значений табличку, без того что нам надо:

<table>

<tr>

<td>10.12.2013</td><td>GT</td>

</tr>

<tr>

<td>11.12.2013</td><td>Stels</td>

</tr>

</table>

siv1987
На сайте с 02.04.2009
Offline
427
#3
Я нашел такие как preg_match, preg_match_all , но не разобрался к сожалению, как пользоваться.

Как работать http://php.net/manual/ru/function.preg-match.php

Чудо функции не существуют. Либо вы учите регулярные выражения, либо, если у вас хтмл, парсите ДОМ всякими классами (хотя это для вас еще сложнее будет).

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#4

preg_match_all и учебник по регулярным выражениям спасут отца русской демократии.

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#5

Народ, прошу, покажите на одном примере простом. Ну вот например, в переменной

$result = "Hello, world! <td>hi!</td> By, world!";

Как мне hi вытащить отсюда?

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#6

$result = "Hello, world! <td>hi!</td> By, world!";
preg_match_all("|<td>([^<>]+)<\/td>|Uis", $result, $out, PREG_PATTERN_ORDER);
print_r($out[1]);

маны

http://www.php.su/functions/?preg-match-all

http://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#7

Что я опять не так делаю?


$pieces = explode('/<tbody>/', $result);
echo $pieces[0];
echo $pieces[1];

Или надо сначала содержимое $result как то декодировать, чтобы можно было с ним работать?

Так вот все работает:


$pieces = explode('|', '1|2|3|4');
echo $pieces[0];
echo $pieces[1];
siv1987
На сайте с 02.04.2009
Offline
427
#8

А что вы вообще делаете?

ПС. explode не регулярное выражение, писать там разделители // не нужно - '<tbody>'.

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#9

Обернул htmlspecialchars($result)

Теперь выводится только код, не исполняется, но все равно explode не делит, просто целиком в нулевой элемент массива записывает весь хтмл код, а остальные элементы - пусты.

---------- Добавлено 11.12.2013 в 23:28 ----------

А что вы вообще делаете?

ПС. explode не регулярное выражение, писать там разделители // не нужно - '<tbody>'.

СПАСИБО! Работает, только если писать tbody без ковычек, <tbody> так уже не работает. Вот видите, как хорошо. А то я бы еще до утра искал, где ошибка.

siv1987
На сайте с 02.04.2009
Offline
427
#10
<tbody> так уже не работает

Не работает, потому что с htmlspecialchars заменили скобки <> на html сущности.

Ну это же капец :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий