#php #arrays #explode
#php #массивы #разнесите
Вопрос:
У меня есть строка — текст html
Я хочу разделить строку на <‘br> и <‘p> в одной строке.
Заранее спасибо за помощь.
пример
$text="hello <'p> this is the text <'br> split this text";
return
ar[0]=hello;
ar[1]=this is the text;
ar[2]=split this text;
Комментарии:
1. Можете ли вы предоставить пример строки?
2. скорее всего, вам нужен preg_split, так как у вас есть 2 разделителя
3. почему в этих тегах есть кавычки?
4. Как насчет закрывающих тегов?? У вас есть какие-нибудь? Я думаю, что preg_split или регулярное выражение было бы лучше для этого.
5. там есть кавычки, потому что по какой-то причине <p> не отображается должным образом в качестве предварительного просмотра — извините за новичка: (
Ответ №1:
РЕДАКТИРОВАТЬ — с использованием preg_split
$str = "text1<p>text2<br/>text3";
$str = preg_split('/(<s*ps*/?>)|(<s*brs*/?>)/', $str);
print_r($str);
//*note wont work with you <'p> <'br> tags, but only real "< p>< /p>< br/>" tags
Или с вашими кавычками в тегах (не знаю, почему они там, но в любом случае)
$str = "text1<'p>text2<'br>text3";
$str = str_replace("<'p>","<'br>",$str);
$values = explode("<'br>",$str);
print_r($values);
Ответ №2:
Чего-то подобного должно быть достаточно:
$text="hello <'p> this is the text <'br> split this text";
$string = str_replace(array("<'p> ", "<'br> "), '___', $text);
$ex = explode('___', $string);
Возвращая:
Array
(
[0] => hello
[1] => this is the text
[2] => split this text
)
Комментарии:
1. я знаю, что это был принятый ответ, но он действительно не самый лучший.
Ответ №3:
поскольку другие 2 ответа ужасны, я предлагаю:
$text="hello <'p> this is the text <'br> split this text";
$e=preg_split("#<'p>|<'br>#",$text);
print_r($e);
Ответ №4:
Может быть, вы можете…
$text = "hello <'p> this is the text <'br> split this text";
$text = str_replace("<'p>", "<'br>", $text);
$text = explode("<'br>", $text);
Теперь вы получаете то, что хотите.