用str_replace替换内容的问题


Issue replacing content with str_replace

我正在与CMS西班牙语网站合作,我正试图将月份替换为西班牙语。

日期函数date("F j, Y, g:i a"):

August 24, 2011, 1:47 pm

现在我想让它看起来像这样:

Agosto 24, 2011, 1:47 pm

使用Php文档中的一个示例,我这样做:

$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');

使用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...

这可能是正确的

$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);

我想你的意思是

    $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);