我有一个像下面这样的字符串
Overall Queen Poster <br /> Queen Poster Headboard:<br /> Queen Poster <br /> Queen Footboard <br /> Queen Poster Rails: 62.28"W x 84.02"D x 18.07"H - 37lbs.
Run Code Online (Sandbox Code Playgroud)
如何在
标记上展开它以便我可以获取数组中的值?
我试过这个
$myString = "Overall Queen Poster <br /> Queen Poster Headboard:<br /> Queen Poster <br /> Queen Footboard <br /> Queen Poster Rails: 62.28"W x 84.02"D x 18.07"H - 37lbs";
$myArray = explode("\n",$myString);
print_r($myArray);
Run Code Online (Sandbox Code Playgroud)
但没有得到正确的结果.
h2o*_*ooo 27
那是因为<br />!= \n.
您可以使用正则表达式来拆分它,以确保你得到所有的BR标签(<br>,<br />,<br/>,<br class="break">,<BR>等)
代码:
<?php
$myString = 'Overall Queen Poster <br /> Queen Poster Headboard:<br /> Queen Poster <br /> Queen Footboard <br /> Queen Poster Rails: 62.28"W x 84.02"D x 18.07"H - 37lbs.';
$myArray = preg_split('/<br[^>]*>/i', $myString);
print_r($myArray);
?>
Run Code Online (Sandbox Code Playgroud)
产出:
Array
(
[0] => Overall Queen Poster
[1] => Queen Poster Headboard:
[2] => Queen Poster
[3] => Queen Footboard
[4] => Queen Poster Rails: 62.28"W x 84.02"D x 18.07"H - 37lbs.
)
Run Code Online (Sandbox Code Playgroud)
限制:
将拆分在任何以HTML开头的HTML标签上br.这意味着,如果您制作了自己的标签,例如<breadcrumb>,这将被错误地视为换行符.
替代方案:
explode('<br />', $myString) 如果你确定你的标签总是准确的 <br />preg_split('/<br\s*/?>/i', $myString)如果您有<breadcrumb>任何<br>标签中的标签,并且在任何标签中都没有任何属性.额外说明:
如果您不希望在匹配中使用空格,则可以/<br[^>]*>\s*/i将匹配后匹配任何空白字符的正则表达式更改为.另外,您也可以通过运行它ltrim与$myArray = array_map('ltrim', $myArray);.