我有一个像下面这样的字符串
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.
怎么把它炸开
标签以便我可以获得数组中的值?
我试过这个
$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);
但没有得到正确的结果。
那是因为<br />
!= \n
.
您可以使用正则表达式来拆分它,以确保您获得所有 BR 标签(<br>
, <br />
, <br/>
, <br class="break">
, <BR>
etc.)
Code:
<?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);
?>
Outputs:
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.
)
DEMO
局限性:
将分割以以下开头的任何 HTML 标签br
。这意味着如果您制作了自己的标签,例如<breadcrumb>
,这会被错误地视为换行符。
备择方案:
-
explode('<br />', $myString)
如果您确定您的标签始终准确无误<br />
-
preg_split('/<br\s*/?>/i', $myString)
如果您有诸如<breadcrumb>
并且没有任何属性<br>
tag.
额外说明:
如果您不想在匹配中出现空格,可以将正则表达式更改为/<br[^>]*>\s*/i
它还将匹配匹配后的任何空白字符。或者,您可以通过运行它ltrim
with $myArray = array_map('ltrim', $myArray);
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)