如何用123替换{asd}?

时间:2015-07-26 09:03:07

标签: php

如何用php替换带有123的{asd}?我有一个替换字符串

的函数
   <?php
    function show($text) {
      $find = array(
       '{asd}' => "123"
      );
      return preg_replace($find,'',$text);
    }
    $text = "{asd}";
    $htmltext = show($text);
    echo $htmltext;

2 个答案:

答案 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表示整数)。