|
|
|
|
<?
$text1='<div id=text>Поверь, ничтожество есть благо в здешнем свете.
К чему глубокие познанья, жажда славы,
Талант и пылкая любовь свободы,
Когда мы их употребить не можем?<p>Источник: stixi.ru</p></div>';
$text2='<div id=text>Поверь, ничтожество есть благо в здешнем свете.
К чему глубокие познанья, жажда славы,
Талант и пылкая любовь свободы,
Когда мы их употребить не можем?<strong>текст: М.Ю. Лермонтов</strong></div>';
$text3='<div id=text>Поверь, ничтожество есть благо в здешнем свете.
К чему глубокие познанья, жажда славы,
Талант и пылкая любовь свободы,
Когда мы их употребить не можем?<strong>фото: А.С.Пушкин</strong></div>';
$text4='<div id=text>Поверь, ничтожество есть благо в здешнем свете.
К чему глубокие познанья, жажда славы,
Талант и пылкая любовь свободы,
Когда мы их употребить не можем?</div>';
$pattern = '{<div id=text>(.*?)(<p>источник\:|<strong>текст\:|<strong>фото\:|<\/div>)}si';
preg_match($pattern, $text1, $res);
echo "<p>$res[1]</p>"; //Почему здесь выводит "Источник: stixi.ru"?
preg_match($pattern, $text2, $res);
echo "<p>$res[1]</p>";
preg_match($pattern, $text3, $res);
echo "<p>$res[1]</p>";
preg_match($pattern, $text4, $res);
echo "<p>$res[1]</p>";
?>
|
Собственно, вопрос в комментарии //Почему выводит "Источник: stixi.ru"?
Спасибо | |
|
|
|
|
|
|
|
для: mmodem
(26.07.2011 в 14:12)
| | ужазззззз)))
вы хотите..... вы хотитееее...наверно вытащить "текст" от тега <div id=text> включительно одного из предложенных вариантов (<p>источник\:|<strong>текст\:|<strong>фото\:|<\/div>) ?
я правильно понял? или до одного из вариантов?
если второй вариант то {<div id=text>(.*?)(?:<p>Источник:|<strong>текст:|<strong>фото:|</div>)}si
p.s. если хотите "учесть" некоторое условие, но вам не надо его запомнить то после открывающейся круглой скобки надо вписать ?: (?:<p>источник\:|<strong>текст\:|<strong>фото\:|<\/div>)
ааааааа, врубился в чём проблема, и пока что ХЗ почему не дружит с регистром | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 14:43)
| | Поясните, пожалуйста, Вашу фразу "если хотите "учесть" некоторое условие, но вам не надо его запомнить", что это дает? | |
|
|
|
|
|
|
|
для: mmodem
(26.07.2011 в 14:58)
| | 1) по непонятным мне причинам учитывается регистр при модификаторе i, можно так написать {<div id=text>(.*?)(?:<p>[Ии]сточник:|<strong>текст:|<strong>фото:|</div>)}is , но имхо ересь
подождём cheops-а))
2) учитель из меня фиговый, объясняю так же, а посоветовать, посоветую:
http://wmdn.ru/php/regular-expressions-in-php/
мне статья понравилась, хоть и не полная, но мне помогла вникнуть в синтаксис регулярок
(если не будет времени всё читать, то начинайте с "Подвыражения (подшаблоны)") | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 15:05)
| | Добавил "u"
$pattern = '{<div id=text>(.*?)(<p>источник\:|<strong>текст\:|<strong>фото\:|<\/div>)}usi';
|
вроде заработало, однако ощущение, что это не панацея... | |
|
|
|
|
|
|
|
для: mmodem
(26.07.2011 в 17:48)
| | >Добавил "u"
енто для UTF, рад что помогло, мне при тестировании на regexpr.ru (в лом было локалку запускать) где win-1251 ничего не помогло | |
|
|
|