0

我有一个带有标记的字符串,我需要用数据库中的文本替换。此文本字符串存储在数据库中,标记用于自动填充来自数据库不同部分的数据。

$text = '<span data-field="la_lname" data-table="user_properties">
{Listing Agent Last Name}
</span>
<br>RE: The new offer<br>Please find attached....'

如果我可以通过以下方式找到数据标记: strpos($text, 'la_lname'); 我可以用它来选择<span></span>标记之间的所有内容吗?

所以新字符串看起来像:

'Sommers<br>RE: The new offer<br>Please find attached....'

我以为我可以根据<span>标签分解字符串,但这会带来很多问题,因为我需要保持文本完整并按原样格式化。我只想插入数据并保持其他所有内容不变。

4

3 回答 3

0

使用PHP 简单的 HTML DOM 解析器

$html = str_get_html('<span data-field="la_lname" data-table="user_properties">{Listing Agent Last Name}</span><br>RE: The new offer<br>Please find attached....');
$html->find('span')->innerText = 'New value of span';
于 2013-08-30T11:32:04.260 回答
0

获取字符串的两个部分之间的内容,例如,如果您有

<span>SomeText</span>

如果你想获得SomeText那么我建议使用一个函数来获取你作为参数放置的两个部分之间的任何内容

<?php
function getbetween($content,$start,$end) {
$r = explode($start, $content);
if (isset($r[1])){
    $r = explode($end, $r[1]);
    return $r[0];
}
return '';
} 

$text = '<span>SomeText</span>';
$start = '<span>';
$end = '</span>';
$required_text = getbetween($text,$start,$end);
$full_line = $start.$required_text.$end;
$text = str_replace($full_line, 'WHAT TO REPLACE IT WITH HERE',$text);
于 2013-08-29T19:51:20.173 回答
0

您可以尝试preg_replace或使用DOM Parser,这对于导航类似 HTML 的结构更有用。

我应该补充一点,虽然正则表达式在这个示例中应该可以正常工作,但您将来可能需要做更复杂的事情或遍历更复杂的 DOM 结构来进行替换,因此在这种情况下使用 DOM Parser 是可行的方法。

于 2013-08-29T19:46:06.913 回答