function findTag($name, $str)
{
//"|<[^>+]>(.*)</[^>]+>|U"
preg_match_all("/<[^>]+>/", $str, $arr, PREG_PATTERN_ORDER);
//$i = 0;
/*while ($arr[1][$i] != null)
{
$res[$i] = $arr[1][$i];
};
*/
return $arr[0][0];
};
$v = findTag("reload", "<reload>yes</reload>");
var_dump($v);
Выводит: string(8) ""
Т.е. строка вроде бы по длине правильная, но она пустая
Спустя 55 минут (10.01.2011 - 18:35) moskitos80 написал(а):
Попробуй вместо var_dump($v) написать print_r($v) и посмотри исходный код страницы, и ты увидишь там свой "<reload>".
Спустя 15 минут, 58 секунд (10.01.2011 - 18:51) DedMorozzz написал(а):
function findTag($name, $str) - тут 2 параметра. Зачем? Используешь только 1.
Спустя 48 минут, 43 секунды (10.01.2011 - 19:40) program90 написал(а):
Ну вообще она должна работать так:
$str = findTag("reload", "<reload>yes</reload>");
echo $str;
И должна выбирать внутренность тэга по выражению:
|<[^>+]>(.*)</[^>]+>|U
$str = findTag("reload", "<reload>yes</reload>");
echo $str;
И должна выбирать внутренность тэга по выражению:
|<[^>+]>(.*)</[^>]+>|U
Спустя 15 минут, 58 секунд (10.01.2011 - 19:56) DedMorozzz написал(а):
$a='<zzz>AA111</zzz>';
$b = 'zzz';
preg_match_all('#<'.$b.'>(.*?)</'.$b.'>#is',$a,$arr);
echo $arr[1][0];
Оберни это в функцию - уже сам.
Спустя 1 час, 47 минут, 40 секунд (10.01.2011 - 21:43) program90 написал(а):
А что значит знак вопроса? и откуда взялись решетки #? Это эквиваленты слэша '/' ?
Спустя 15 часов, 26 минут, 47 секунд (11.01.2011 - 13:10) DedMorozzz написал(а):
Цитата |
откуда взялись решетки #? Это эквиваленты слэша '/' ? |
Верно, только более универсальный эквивалент, решётку приходится экранировать крайне редко.
Цитата |
А что значит знак вопроса? |
Читай про ленивый и жадный поиск