|
|
|
| Имеется код:
<select name="select0" id="select0" style="height:18; font-size:8pt ; color:#555555" onChange="javascript:checkSelValue(1, 'F');">
<option value="">Please select.</option>
<option value="">----------</option>
<option value="050446340" selcode="50446340" imgurl="">black</option>
<option value="050446342" selcode="50446342" imgurl="">grey</option>
<option value="050446343" selcode="50446343" imgurl="">white</option>
<option value="050446341" selcode="50446341" imgurl="">red</option>
</select>
|
Хочу вытащить value, selcode и имя option
Пробую:
<?php preg_match_all('|<option.*value="(.*)".*selcode="(.*)".*>(.*)</option>|isU', $text, $out5); ?>
|
Так результат получается кривой:
Array
(
[0] => Array
(
[0] => Please select. ---------- Black
[1] => Navy
[2] => Brown
[3] => Gray
)
[1] => Array
(
[0] =>
[1] => 050446342
[2] => 050446343
[3] => 050446341
)
[2] => Array
(
[0] => 50446340
[1] => 50446342
[2] => 50446343
[3] => 50446341
)
[3] => Array
(
[0] => Black
[1] => Navy
[2] => Brown
[3] => Gray
)
)
НЕ ПОЙМУ ГДЕ Я СДЕЛАЛ НЕПРАВИЛЬНО??? | |
|
|
|
|
автор: ..... (01.11.2010 в 17:37) |
|
|
для: Ильдар
(01.11.2010 в 16:12)
| | всмысле почему совпадает с value="" из одного тега и selcode="50446340 из другого ?
<option value="">----------</option>
<option value="050446340" selcode="50446340" imgurl="">black</option>
нужно добавлять header('content-type: text/plain'); в начале таких скриптов с print_r() или var_dump()
, или смотреть исходный html-код в браузере
может быть надо внутри тега [^>*] вместо .* | |
|
|
|
|
|
|
|
для: Ильдар
(01.11.2010 в 16:12)
| | Сравни свою регулярку и мною переделанную:
<?php
preg_match_all('|<option.*value="(.*)".*selcode="(.*)".*>(.*)</option>|isU', $text, $out5); //твоя
preg_match_all('|<option\s*value="([^\"]+)"\s*selcode="([^\"]+)".*>(.+)</option>|isU', $string, $out5); //моя
?>
|
результат моей:
<?php
Array
(
[0] => Array
(
[0] => <option value="050446340" selcode="50446340" imgurl="">black</option>
[1] => <option value="050446342" selcode="50446342" imgurl="">grey</option>
[2] => <option value="050446343" selcode="50446343" imgurl="">white</option>
[3] => <option value="050446341" selcode="50446341" imgurl="">red</option>
)
[1] => Array
(
[0] => 050446340
[1] => 050446342
[2] => 050446343
[3] => 050446341
)
[2] => Array
(
[0] => 50446340
[1] => 50446342
[2] => 50446343
[3] => 50446341
)
[3] => Array
(
[0] => black
[1] => grey
[2] => white
[3] => red
)
)
?>
|
Твой результат получился неожиданным из-за модификатора U.. Посмотри подробнее, как работают жадные/нежадные квантификаторы | |
|
|
|
|
|
|
|
для: Tonik992
(01.11.2010 в 17:58)
| | вот честно, я так и грешил на этот модификатор, только не мог дойти до него. Спасибо огромное! Теперь понял | |
|
|
|