7.11.2013 / 19:21 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Как достать значения <td>USD</td> <td class="align_left">Доллар США</td> <td>7.9930</td> </tr>/\<td\>(?P<currency>\w+)(.*)left\"\>(?P<name>\w+)\<\/td\> \<td\>(?P<value>\w+)\<\/td\>/
Я минус один в регулярках Сумел только первое значение достать: /\<td\>(?P<currency>\w+).*/
UPD: достал первое и последнее значения: /<td>(?P<currency>\w+).*>(?P<value>(\d+(\.\d+)?))/
а среднее, блин!?!! __________________
let live Изменено aNNiMON (7.11 / 19:42) (всего 5 раз) |
7.11.2013 / 19:46 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Вопрос закрыт, набыдлокодил. Всем спасибо за помощь. /<td>(?P<currency>\w+).*>(?P<name>(.*))<\/td> <td>(?P<value>(\d+(\.\d+)?))<\/td>/
__________________
let live |
7.11.2013 / 20:02 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Нет, вопрос не закрыт. В preg_match online всё пашет, а в php нет. __________________
let live |
7.11.2013 / 20:16 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| aNNiMON, $s = '<td>USD</td> <td class="align_left">Доллар США</td> <td>7.9930</td> </tr>';
preg_match('/<td>(.*?)<\/td> <td class="align_left">(.*?)<\/td> <td>(.*?)<\/td> <\/tr>/is', $s, $matches);
echo $matches[1] . ' | ' . $matches[2] . ' | ' . $matches[3];
|
7.11.2013 / 20:25 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Helltar, для конкретного примера работает, но у меня $s из массива достаётся, а массив из страницы и вот так уже не работает. И вообще, если тупо указать $s = ..строка.., тогда и моя регулярка пашет, а вот с массивами нет( Может дело в том, что $html = mb_convert_encoding($html, "UTF-8", "Windows-1251"); ? Всё немного хуже. Моя строка выглядит так: <td>EUR</td>
<td class="align_left">Евро</td>
<td>10.6826</td>
</tr>
__________________
let live Изменено aNNiMON (7.11 / 20:31) (всего 2 раза) |
7.11.2013 / 20:46 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| aNNiMON, ну если ты передаешь в функцию массив, то работать точно не будет. И кодировку, да, проверить стоит, плюс если в регулярках если юзаешь юникод, нужно использовать модификатор u: '/<td>(.*?)<\/td> <td class="align_left">(.*?)<\/td> <td>(.*?)<\/td> <\/tr>/isu'
Изменено web_demon (7.11 / 20:47) (всего 3 раза) |
7.11.2013 / 20:48 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| web_demon, Евпатий Коловрат Дописал /isu - заработало Спасибо всем! А что делают эти модификаторы? __________________
let live |
7.11.2013 / 20:55 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| aNNiMON, http://myrusakov.ru/php-regexp-mod.htmlПочитай. Плюс еще u (маленькое). Так как в пыхе херовая поддержка юникода, то нужно все делать через жопу при работе со строками в utf-8, поэтому и указываем этот модификатор. |
12.11.2013 / 20:55 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Как установить длину сессии? И какую лучше всего поставить?
__________________
let live |
12.11.2013 / 21:12 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| __________________
знает толк |