Проблема с заменой контента на str_replace - PullRequest
1 голос
/ 25 августа 2011

Я работаю с испанским веб-сайтом CMS и пытаюсь заменить месяцы на испанский.

Так выглядит функция даты date ("F j,Y, g: ia ") :

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 ]

2 голосов
/ 25 августа 2011

Было бы намного проще просто использовать 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 голос
/ 25 августа 2011

Это, вероятно, правильный

$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);
1 голос
/ 25 августа 2011

Я думаю, что вы имеете в виду

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