Как вставить содержимое специального тега в строку в массив с помощью php? - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть строка:

$strings = "<p>text123456:2342345234 </p>
<p>exampletextasdasdasd::tesastasdasd </p>
<p>gov:eeeass@mmm</p>"

Как я могу преобразовать эти строки в массив?

Мне нужно получить вывод:

["text123456:2342345234", "exampletextasdasdasd::tesastasdasd", "gov:eeeass@mmm"]

Мой код:

$array = explode(' ', $strings);

не работает ..

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

попробуйте следующее ...

$strings = "<p>text123456:2342345234 </p><p>exampletextasdasdasd::tesastasdasd </p><p>gov:eeeass@mmm</p>";

$strings = str_replace('<p>', '', $strings);

$array = explode('</p>', $strings);

/* to trim the strings */
$array = array_map(function($string){ return trim($string); }, $array);
0 голосов
/ 14 ноября 2018

Используя регулярное выражение /<p>([^<]+)<\/p>/, вы можете получить любой текст между <p></p> в указанной строке. Используйте регулярное выражение в preg_match().

preg_match_all("/<p>([^<]+)<\/p>/", $strings, $matches);
print_r($matches[1])

Результат

Array
(
    [0] => text123456:2342345234 
    [1] => exampletextasdasdasd::tesastasdasd 
    [2] => gov:eeeass@mmm
 )

Если вы хотите удалить дополнительное пространство в конце строк, вы можете использовать шаблон /<p>(\S+)\s?<\/p>/ или использовать комбинацию trim() и array_map()

$res = array_map('trim', $matches[1]);

Результат проверки в демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...