Php 如何在<;上分解字符串;br/>;标签
我有一根像下面这样的线Php 如何在<;上分解字符串;br/>;标签,php,Php,我有一根像下面这样的线 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. 整体女王海报女王海报床头板:女王海报女王踏板女王海报栏杆:62.28英寸宽x 84.02英寸深x 18.07
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.
整体女王海报
女王海报床头板:
女王海报
女王踏板
女王海报栏杆:62.28英寸宽x 84.02英寸深x 18.07英寸高-37磅。
如何在标记上分解它,以便获得数组中的值 我试过这个
$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);
$myString=“整体女王海报
女王海报床头板:
女王海报
女王踏板
女王海报栏杆:62.28英寸宽x 84.02英寸深x 18.07英寸高-37磅;
$myArray=explode(“\n”,$myString);
打印(myArray);
但是没有得到正确的结果。输入是作为html编码的字符串提供的,因此换行符被编码为
,所以为什么不把
作为分隔符,而不是\n
?这是因为
!=<代码>\n
您可以使用正则表达式将其拆分,以确保获得所有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);
?>
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.
)
限制:
<?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);
?>
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.
)
将在以br
开头的任何HTML标记上拆分。这意味着,如果您制作了自己的标记,例如
,这将被错误地视为换行符
备选方案:
<?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);
?>
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.
)
explode(“
,$myString)
如果您确定您的标记将始终精确地显示在
preg\u split('//i',$myString)
如果您有
之类的标记,并且在任何
标记中没有任何属性
额外注释:
<?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);
?>
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.
)
如果您不希望在匹配中使用空格,可以将正则表达式更改为/]*>\s*/i
,这也将匹配匹配后的任何空格字符。或者,您可以使用$myArray=array\u map('ltrim',$myArray')通过ltrim
运行它代码>