Ошибка "PHP Warning: strtr()...."

P
На сайте с 21.01.2012
Offline
72
1357

Здравствуйте!

Очень давно мучаюсь с ошибкой:

[Tue Feb 10 17:33:58 2015] [warn] [client 66.249.75.102] mod_fcgid: stderr: PHP Warning:  strtr(): The second argument is not an array in ......./wp-content/plugins/recall/functions-rcl.php on line 695

[Tue Feb 10 17:34:22 2015] [warn] [client 66.249.75.118] mod_fcgid: stderr: PHP Warning: strtr(): The second argument is not an array in ......./wp-content/plugins/rustolat/rus-to-lat.php on line 60

Примечательно то, что ошибка появляется только в еррор-логах форума, который расположен по адресу forum.site.ru (IPB) сам же сайт, как вы уже догадались, на Wordpress.

В обоих файлах содержится одинаковый контент для транслита, привожу пример из rus-to-lat.php on line 60

$gost = array(

"Є"=>"EH","І"=>"I","і"=>"i","№"=>"#","є"=>"eh",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"JO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"JJ","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"KH",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"EH","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"jo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"jj","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"eh","ю"=>"yu","я"=>"ya",
"—"=>"-","«"=>"","»"=>"","…"=>""
);

$iso = array(
"Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"#","є"=>"ye","ѓ"=>"g",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"yo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
"—"=>"-","«"=>"","»"=>"","…"=>""
);

function sanitize_title_with_translit($title) {
global $gost, $iso;
$rtl_standard = get_option('rtl_standard');
switch ($rtl_standard) {
case 'off':
return $title;
case 'gost':
return strtr($title, $gost);
default:
return strtr($title, $iso);
}
}

Строка 60 в данном случае return strtr($title, $iso); ругается на переменную $iso которая, якобы, не массив...

Что примечательно: [Tue Feb 10 17:33:58 2015] [warn] [client 66.249.75.102] - клиент всегда либо мой IP либо IP-адреса гуглобота.

Возможно это не критичная ошибка, но каждый день скапливается по 3+ Мб таких логов, а что с этим делать - понятия не имею.

siv1987
На сайте с 02.04.2009
Offline
427
#1
Preci:
Примечательно то, что ошибка появляется только в еррор-логах форума, который расположен по адресу forum.site.ru (IPB)

А каким образом на форуме распространяется действие сайта? Может вы что-то там подключили, и не все что нужно, поэтому и нет переменных $iso и $gost.

P
На сайте с 21.01.2012
Offline
72
#2
siv1987:
А каким образом на форуме распространяется действие сайта? Может вы что-то там подключили, и не все что нужно, поэтому на и нет переменных $iso и $gost.

Стоит IPBWI для интеграции Wordpress и IPB (единая авторизация и регистрация).

Но, транслит используется исключительно при добавлении / редактировании записей,меток и т.п. в Wordpress, к форуму он не должен иметь никакого отношения. Еще очень важно - ошибка всегда только для гуглоботов и для моего IP, хотя на форуме есть и другие люди, но с их IP никаких ошибок не вижу в логах.

В любом случае, если ошибка в отсутствии переменной - это значит что $iso и $gost можно засунуть в функцию и это может помочь?

---------- Добавлено 10.02.2015 в 20:31 ----------

UPD

Засунул $iso в тело функции - в логах все стало чисто. Не знаю насколько это "изящное" решение, но вроде проблем нету

IdealEffect
На сайте с 10.02.2015
Offline
2
#3

Быть может, присутствует дубль переменной?

Код в первом сообщении вы показали "как есть" или же просто вырезали из скрипта строки для общего понимания?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий