php - 将字符串与 [PHP] 之间的标签一起分解

标签 php arrays string explode

我有以下示例字符串:

$string = 'I wish you a merry <span style="font-size: 14px;">Christmas</span> and a happy new <span style="font-size: 18px;">year</span>!'

现在我试图分解这个字符串,以便输出是:

$arr[0] = 'I wish you a merry '
$arr[1] = '<span style="font-size: 14px;">Christmas</span>'
$arr[2] = ' and a happy new '
$arr[3] = '<span style="font-size: 18px;">year</span>'
$arr[4] = '!'

我试过

$arr = explode('<span style="font-size: ', $string);

当然,我会在下一次开场前包含整个字符串 <span> -标签。

我也尝试使用 preg_match_all对所有使用的字体大小进行 foreach 循环:

preg_match_all('~\<span style="font-size:' . $fontSize . 'px;"\>(.*?)\<\/span\>~', $string, $output[$fontSize]);

但是不包括标签之间的其他字符串。但我需要按照描述的顺序使用它们。

如何将其正确转换为给定的数组?对于无法读取 HTML 的 PHP 库 PDFlib,我需要它。

最佳答案

这是一个简单易读的解决方案(不是最漂亮的):

$string = 'I wish you a merry <span style="font-size: 14px;">Christmas</span> and a happy new <span style="font-size: 18px;">year</span>!';

$string = str_replace("<span", "|<span", $string);
$string = str_replace("</span>", "</span>|", $string);

字符串将像这样结束:

'I wish you a merry |<span style="font-size: 14px;">Christmas</span>| and a happy new |<span style="font-size: 18px;">year</span>|!'

现在您可以分解“|”上的字符串:

$arr = explode("|", $string);

关于php - 将字符串与 [PHP] 之间的标签一起分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51378050/

相关文章:

javascript - 字符串第一个单词在 Javascript 中的位置

php - 如何从 SQL 中的引号中选择特定文本

php - 将 PUT 方法与 PHP cUrl 库一起使用

在临时对象上调用方法的 PHP 语法

javascript - 算法练习、对象操作

python高效替换嵌套数组中的字符串

javascript - 在 PHP 文件中实现 JavaScript (WordPress)

python - 获得二维数组的列计数

python - 在 BeautifulSoup 中查找标签的字符串索引

.net - 为什么TextFieldParser.ReadField从字段中间删除连续的换行符?