发出用str_replace替换内容的问题

时间:2011-08-24 21:52:52

标签: php str-replace

我正在使用CMS西班牙语网站,我正在尝试将这些月份替换为西班牙语。

这是日期函数日期(“F j,Y,g​​:i a”)的样子:

August 24, 2011, 1:47 pm

现在我希望它看起来像这样:

Agosto 24, 2011, 1:47 pm

使用Php Documentation中的一个例子我做了这个:

$p['time'] = date("F j, Y, g:i a");
        $time_english = $p['time'];
        $search  = $time_english('August', 'September', 'October', 'November', 'December');
        $replace = $times_spanish('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
        $subject ='August';
        str_replace($search, $replace, $subject);

出现以下错误:

Fatal error: Call to undefined function August 24, 2011, 3:50 pm() in
    $search  = $time_english('August', 'September', 'October', 'November', 'December');

3 个答案:

答案 0 :(得分:2)

使用strftime()要容易得多。您所要做的就是设置一个locale,然后您可以用您想要的语言输出。

示例:

setlocale(LC_ALL, 'es_ES');    // I think it´s es_ES
$my_time = strftime("%B %e, %G, %I:%M %P");    // something like that...

答案 1 :(得分:1)

我认为你的意思是

    $search  = array('August', 'September', 'October', 'November', 'December');
    $replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');

而不是

    $search  = $time_english('August', 'September', 'October', 'November', 'December');
    $replace = $times_spanish('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');

作为一个兴趣点,您的错误说它试图调用名为August 24, 2011, 3:50 pm()的函数的原因是因为明显的变量函数名$time_english()。它返回$time_english的值,然后尝试将其作为函数运行。


以下是整个事情:

$p['time'] = date("F j, Y, g:i a");
$time_english = $p['time'];
$search  = array('August', 'September', 'October', 'November', 'December');
$replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
$time_spanish = str_replace($search, $replace, $time_english);

答案 2 :(得分:1)

这可能是正确的

$p['time'] = date("F j, Y, g:i a");

$search  = array('August', 'September', 'October', 'November', 'December');
$replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
str_replace($search, $replace, $subject);