У меня такая проблема.
Нужно отпарсить страницу. Для этого понадобился класс [[:print:]] - все печатные символы. Но он не содержит кириллицу. А русские символы также необходимы в регулярном выражении.
Можно ли как то дополнить этот класс?
Т.е. например можно написать [0-9а-я] - цифровые символы дополняем русскими. А как поступить с классом [[:print:]] ? Можно ли дополнить его русскими символами. Или придется перечислять все заново (все цифры, буквы, знаки препинания, другие символы..) Может есть какой нибудь способ?
Поподробнее опишу задачу:
Есть страница, на которой есть название и описание товара. К примеру название обрамляется <p><a href=..........>Название</a></div>
и описание также обрамляется определенными тэгами.
Таким образом описав в регулярном выражении конструкуции
<p><a href=..........>
и </a></p> Мне нужно вытащить то, что между ними.
ereg('[0-9]+">([[:print:]]+)</a></div>',$page,$arr)
([[:print:]]+) и должно дать название, но проблемы начинаются, когда в названии встречаются русские символы.
1. sozon - 18 Апреля, 2007 - 14:06:15 - перейти к сообщению
2. -SCHATTEN- - 18 Апреля, 2007 - 14:52:44 - перейти к сообщению
Ну начнем с того что ООП подразумевает создание базового класса, а затем уже остальных которые могут наследовать базовый класс.
Так что можно дополнить...
Да и ещё когда пишешь Рег. выр. для кирилицы учти , что в диапазон [а-я] невходит буква е
Поэтому оно бдет иметь вид :
"[а-я]е"
Так что можно дополнить...
Да и ещё когда пишешь Рег. выр. для кирилицы учти , что в диапазон [а-я] невходит буква е
Поэтому оно бдет иметь вид :
"[а-я]е"
3. evgenijj - 18 Апреля, 2007 - 16:47:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- $text = "
- <div align=\"center\"><a href=\"/catalog/index.php?id_prd=17\">Наименование товарной позиции 17</a></div>
- <div align=\"center\"><a href=\"/catalog/index.php?id_prd=22\">Наименование товарной позиции 22</a></div>
- <div align=\"center\"><a href=\"/catalog/index.php?id_prd=47\">Наименование товарной позиции 47</a></div>
- <div align=\"center\"><a href=\"/catalog/index.php?id_prd=56\">Наименование товарной позиции 56</a></div>
- ";
- $pattern = "/<div[^>]*><a\\s[^>]+>(.*?)<\\/a><\\/div>/i";
- foreach( $matches[1] as $value ) echo $value."<br/>";
- ?>
Результат
Наименование товарной позиции 17<br/>
Наименование товарной позиции 22<br/>
Наименование товарной позиции 47<br/>
Наименование товарной позиции 56<br/>