如何分解
标签上的字符串

2023-11-24

我有一个像下面这样的字符串

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(使用前将#替换为@)

如何分解
标签上的字符串 的相关文章