我遇到了如何将文本替换为文本所具有的锚标记的问题 也可以在标签的href属性中使用类似文本。
文字应显示如下:
//input
$string = "text1 text2 text23 text24";
$tofind = "text2";
//output
<a href="welcome_to_text2.php">text2</a>
我使用下面的代码,但输出错误:
<?php
$fulltext = "text1 text2 text23 text24";
$tofind = "text2";
$string = explode(" " , $str);
foreach($string as $value){
$href = "welcome_to_{$tofing}.php";
$fulltext = preg_replace('/('.preg_quote($tofind, '/').')/i',
"<a href=\"{$href}\">"."\\1"."</a>", $fulltext );
}
echo $fulltext ;
//it outputs <a href="welcome_to_<a href=""">text2</a>
?>
text23和text24也被替换,因为text2出现在两个字符串上。我只是想单独替换text2,因为它匹配。 有人知道吗?感谢
答案 0 :(得分:0)
您可以使用以下代码:
$fulltext = "text1 text2 text23 text24";
$tofind = "text2";
$array = explode(" " , $fulltext);
$fileKey = array_search($tofind, $array);
// if giving file does not exist use 'text1' as default.
$fileName = isset($array[$fileKey]) ? $array[$fileKey] : 'text1';
echo sprintf('<a href="welcome_to_%s.php">%s</a>', $fileName, $fileName);
或者,如果您想要数组中所有元素的构建链接:
$fulltext = "text1 text2 text23 text24";
$tofind = "text2";
$array = explode(" " , $fulltext);
$text = '';
foreach ($array as $value) {
$text .= sprintf('<a href="welcome_to_%s.php">%s</a><br />', $value, $value);
}
echo $text;
希望它有所帮助。