|
|
|
| Есть строка
<b>Адрес:</b><br>ул. Серышева, 42</li>
|
Как вырвать из неё часть?:
С помощью функции preg_match()
короче нужен регулярное выражение с небольшим пояснением по нему.
Изучать сейчас времени нет, а эту функцию срочно надо сделать:(
Поможете? | |
|
|
|
|
|
|
|
для: kirpich
(18.02.2010 в 21:07)
| | Выражение:
#<b>([^<])</b><br>([^<])</li>#is
|
| |
|
|
|
|
|
|
|
для: kirpich
(18.02.2010 в 21:07)
| | :) нужно так и написать <b>Адрес:</b><br>ул. Серышева, 42</li>
, только взять то что из этого нужно в скобки ()
или ?
preg_match('@Адрес:</b><br>([^<]+)@', $txt, $array);
print_r($array);
|
[^<]+ это один или больше не"<" байт | |
|
|
|
|
|
|
|
для: heed
(18.02.2010 в 21:22)
| | Не одно выражение не работает, вернее работает, но если я применяю его не только к этой строке, а к тексту с этой строкой внутри, не работает:(
Уточню:
Есть HTML страницы, в "их тексте" есть часть:
<h1 size="5" style="padding-bottom: 1em;">Berlin club inc</h1>
<p align="center"><img src="/uploads/catalog/logo/2096/2.jpg"></p><ul><li><b>Адрес:</b><br>Бизнес-центр «Новый квартал» (ост. Павленко)</li><li><b>Телефон:</b><br>45-43-30</li><li><b>URL:</b><br><a href="javascript:open_url('http://www.berlin-club.ru/')">http://www.berlin-club.ru/</a><br></li><br><li><b>Часы работы:</b><br>22.00-06.00</li><br><li><input value="Распечатать" onclick="return optbtns.get(this,'Print');" class="print" type="button"></li><li><input value="Отзывы" onclick="card.comments(2096,'87370379')" class="reports" type="button"></li></ul><br><h2>Размещено в рубриках:</h2><ul><li><a href="/catalog/?catid=10190">Развлечения</a> → <a href="/catalog/?catid=10200">Клубы</a> → ...</li></ul>
|
Мне необходимо с этого кода выдрать: Название (оно в теги Н1), адрес, телефон, url | |
|
|
|
|
|
|
|
для: kirpich
(18.02.2010 в 21:36)
| | должно было работать, возможно если текст в utf-8, нужно поставить "u" модификатор, там-же где я поставил "x"
всмысле #x'
<pre><?php
$txt = <<<TXT
этот текст
TXT;
preg_match('#<h1[^>]*>([^<]++)</h1>
[^А]++Адрес:</b><br>([^<]++)
[^Т]++Телефон:</b><br>([^<]++)
[^U]++URL:.+?(http://[^"\']++)#x', $txt, $array);
unset($array[0]);
print_r($array);
|
| |
|
|
|
|
|
|
|
для: heed
(18.02.2010 в 22:09)
| | Не работает:(
Поставил u выводит: Warning: preg_match() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset 27 in ... | |
|
|
|
|
автор: .heed (18.02.2010 в 22:32) |
|
|
для: kirpich
(18.02.2010 в 22:13)
| | значит сам скрипт создали и редактируете не в utf-8-кодировке, поэтому ругается на не-utf-8 буквы
, сам текс-то по которому ищете в какой кодировке ?
, если в utf-8, то просще всего будет просто переключить редактор на utf-8, и вставить туда выражение, или вообще весь скрипт перекодировать в utf-8
, более затруднительно заменять там все русские буквы на их такое представление , буква А == \xd0\x90
, если проверяемый текст не в utf-8, значит ищите там различия с тем что вы сюда запостили
, а лучше изучить выражения :) тогда сможете переделать | |
|
|
|
|
|
|
|
для: .heed
(18.02.2010 в 22:32)
| | Спасибо, с ошибкой разобрался, но массив все равно пуста даже при установки u:(
Буду разбираться, может что получиться, еще раз Спасибо! | |
|
|
|
|
|
|
|
для: kirpich
(18.02.2010 в 22:13)
| | я обычно отрезаю с хвоста выражение по кускам, когда не могу понять почему не совпадает | |
|
|
|