Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在<;上分解字符串;br/>;标签_Php - Fatal编程技术网

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
运行它