如何使用PHP将字符串中的特殊标记的内容插入数组?

时间:2018-11-14 13:31:09

标签: php arrays string

我有一个字符串:

<?php
    $a = 96.35;
    $b = 96.01;

    $c = ( ( floor($a * 100) - floor($b * 100) ) / 100 );

    echo $c; // should see 0.34 exactly instead of 0.33999999999999
?>

如何将这些字符串转换为数组?

我需要输出:

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

我的代码:

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

不起作用。

2 个答案:

答案 0 :(得分:0)

使用正则表达式/<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]);

demo中查看结果

答案 1 :(得分:0)

尝试以下操作...

$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);