如何在<br/>标签上爆炸字符串

Muk*_*esh 6 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.
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)

DEMO

限制:

将拆分在任何以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);.