В соответствии с руководством в json_encode
метод может возвращать нестроку (false):
Возвращает строку с кодировкой JSON при успешном выполнении или
blockquote>FALSE
при ошибке.Когда это произойдет,
echo json_encode($data)
выведет пустую строку, которая недействительна JSON .
json_encode
будет например, fail (и returnfalse
), если его аргумент содержит строку не UTF-8.Это условие ошибки должно быть записано в PHP, например, следующим образом:
Тогда конечный вывод должен, конечно, знать, что наличие jsonError указывает на состояние ошибки, которое должно обрабатываться соответствующим образом.
В режиме производства может быть лучше отправить клиенту только общий статус ошибки и записать более конкретные сообщения об ошибках для последующего расследования.
Подробнее о проблемах с ошибками JSON в Документация PHP .
Вы не делаете ничего плохого. Я пошел проверить сервер и обнаружил, что сервер настроен так, что запрос POST возвращает HTML. Однако это не тот же HTML, что и исходная страница, так как этот возвращаемый HTML содержит только информацию о заключенных, которых вы искали.
Если вы хотите извлечь информацию о заключенных из этого HTML, я бы предложил использовать что-то вроде Beautiful Soup , который является HTML-парсером и позволит вам извлечь любую информацию, которую вы хотите .