我有一个包含多个href属性的文本字符串。我想用不同的链接替换它们。
我已经“爆炸”原始链接数组和链接数组以及我要替换的网址。但我面临问题,我不知道如何用新值更新字符串。
所以,以一种简单的方式
PROC SQL;
SELECT
SUBSTR(STRIP(VALUENAME),1,-4) as valuename,
columnname
FROM GETUOM
WHERE VALUENAME IS NOT NULL;
QUIT;
并有字符串
$sting1 = 'bla bla bla <a href="some_url">some text</a> bla bla bla <a href="some_url2">some text 2</a> bla bla bla <a href="some_url3">some text 3 3</a>';
我知道我可以“爆炸”这个href并替换它们,但是如何为$ sting1更新文本?
答案 0 :(得分:1)
您可以使用两种方法。一个是使用str_replace,它只需要一个子串数组(或只是单个子串)来替换它们和一个数组(或单个字符串)来替换它们。
另一种方法类似,使用preg_replace,类似于str_replace
,但它使用正则表达式
答案 1 :(得分:0)
我认为最好的解决方案是使用正则表达式
<?php
$regex = '/href="([^"]*)"/si';
$ori_string = 'yourStringWithSomeHrefs';
$replacements = [
'http://foo.bar',
'relativeLink',
// and so on
];
if(preg_match_all($regex, $ori_string, $m, PREG_OFFSET_CAPTURE)) {
foreach($m[1] as $key => $value) {
$ori_string = substr_replace($ori_string, $replacements[$key], $value[1], str_len($value[0]));
}
}
注意两件事