如何用php替换带有123的{asd}?我有一个替换字符串
的函数 <?php
function show($text) {
$find = array(
'{asd}' => "123"
);
return preg_replace($find,'',$text);
}
$text = "{asd}";
$htmltext = show($text);
echo $htmltext;
答案 0 :(得分:1)
解决方案特定于OP问题。有更好的解决方案。
如果您希望输出为123
:
function show($text) {
$find = array(
'/{asd}/',
);
return preg_replace($find,'123',$text);
}
$text = "{asd}";
$htmltext = show($text);
echo $htmltext;
如果您希望输出为{123}
:
function show($text) {
$find = array(
'/asd/',
);
return preg_replace($find,'123',$text);
}
$text = "{asd}";
$htmltext = show($text);
echo $htmltext;
检查preg_replace中的示例#2,了解如何使用数组作为参数。
示例#2使用带有preg_replace()的索引数组
<?php $string = 'The quick brown fox jumped over the lazy dog.'; $patterns = array(); $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements = array(); $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow'; echo preg_replace($patterns, $replacements, $string); ?>
以上示例将输出:
The bear black slow jumped over the lazy dog.
通过ksorting模式和替换,我们应该得到我们想要的。
<?php ksort($patterns); ksort($replacements); echo preg_replace($patterns, $replacements, $string); ?>
以上示例将输出:
The slow black bear jumped over the lazy dog.
答案 1 :(得分:0)
我不太确定你的最终结果是什么,但对于像我个人使用sprintf那样的字符串替换。
http://php.net/manual/en/function.sprintf.php
编辑: 你可以这么做。
$find['{asd}'] = "123";
$text = 'There are %d in here';
$output = sprintf($text, $find['{asd}']);
echo $output;
这将回应“这里有123个”。如果需要,可以使用%s作为字符串(%d表示整数)。