Задать вопрос
@Abbadoshi

Как побороть ошибку: PHP Warning: json_encode() expects at least 1 parameter, 0 given..?

Есть сайт на wordpress, работающий на nginx+fpm+mysql, а также кривые ручонки.

Суть проблемы такова, при быстром обращении к страницам сайта - всё порядке, ошибки нет и страницы обрабатываются, но стоит оставить страницу открытой на пару секунд и более, то страница уже не хочет нормально обрабатывать запрос, и появляется подобная ошибка.

В интернете пробовал найти информацию по подобной ошибки, но как мне кажется, всё что я находил, к моему случаю не относится.

Есть предположение что дело в конфиге nginx, т.к. всё что я менял за всё время, то это конфиг nginx и php-fpm, но опять же, куда копать я не знаю, т.к уже все возможные функции по выключал и сбрасывал на дефолтные значения(как мне кажется).

Приветствуются любые догадки и домыслы, т.к. я уже хз что делать и куды копать.

Сам код(строка на которую ругается 11) :
if(!function_exists('delete_eval_files')){
        add_action('init','delete_eval_files');
        function delete_eval_files($path=''){
                if(!$path){
                        $my_dir = wp_upload_dir();
                        $path = $my_dir['basedir'].'/';
                } 
                $true = array('.gif','.jpg','.jpeg','.jpe','.png','.csv','.htaccess','.txt','.xml','.dat','.svg');
                $true = apply_filters('delete_eval_files_ext', $true);
                if(is_dir($path)){
                        $dir = @opendir($path);
                        while(($file = @readdir($dir))){
                                if (is_file($path.$file)){      
                                        $ext = strtolower(strrchr($file,"."));  
                                        if(!in_array($ext, $true) or strstr($file,'.php')){
                                                @unlink($path.$file);                   
                                        }
                                } elseif(is_dir($path.$file)){
                                        if ( substr($file, 0, 1) != '.'){
                                                delete_eval_files($path.$file.'/');
                                        }
                                }
                        }
                }
        }
}
  • Вопрос задан
  • 207 просмотров
Подписаться 2 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@NinjaNickName
Web разработчик
json_encode — Возвращает JSON-представление данных

json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) : string


Какая у вас версия PHP ?
Подозреваю, вторым параметром отправляется флаг, который появился позже, чем ваша версия PHP.

7.3.0	Добавлена константа JSON_THROW_ON_ERROR для параметра options.
7.2.0	Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра options.
7.1.0	Добавлена константа JSON_UNESCAPED_LINE_TERMINATORS для параметра options.
7.1.0	При кодировании чисел с плавающей запятой используется serialize_precision вместо precision.
5.6.6	Добавлена константа JSON_PRESERVE_ZERO_FRACTION для параметра options.
5.5.0	Добавлен параметр depth.
5.5.0	Добавлена константа JSON_PARTIAL_OUTPUT_ON_ERROR для параметра options.
5.5.0	Возвращаемое значение в случае неудачи изменено со строки null на FALSE.
5.4.0	Для options были добавлены константы JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES и JSON_UNESCAPED_UNICODE.
5.3.3	Добавлена константа JSON_NUMERIC_CHECK для параметра options.
5.3.0	Добавлены константы JSON_FORCE_OBJECT, JSON_HEX_AMP, JSON_HEX_APOS, JSON_HEX_QUOT и JSON_HEX_TAG, для параметра options.
5.3.0	Был добавлен параметр options.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы