Когда я столкнулся с этой проблемой, я написал метод расширения для класса String в C #.
public static class StringExtensions
{
public static string StripIncompatableQuotes(this string s)
{
if (!string.IsNullOrEmpty(s))
return s.Replace('\u2018', '\'').Replace('\u2019', '\'').Replace('\u201c', '\"').Replace('\u201d', '\"');
else
return s;
}
}
Это просто заменяет глупые «умные цитаты» обычными цитатами.
[РЕДАКТИРОВАТЬ] Исправлена также поддержка замены «двойных умных кавычек».
Установка уровня ошибки в самом файле php не решает проблему здесь, потому что сам файл не может быть проанализирован !!
Вам необходимо изменить строку error_reporting в вашем php.ini следующим образом:
error_reporting = E_ALL
Кстати: в файле php.ini есть несколько примеров того, что делать, чтобы отображать сообщения об ошибках какого типа.
Удачи,
mcemoz
Apache также не всегда любит сообщать об ошибках синтаксического анализа. Из командной строки запустите
php -l <file>
. Ключ -l указывает PHP проверять синтаксис файла. См. Страницу руководства.
Попробуйте это.
error_reporting(E_ALL);
ini_set("display_errors", 1);
E_STRICT
не включен в E_ALL
(до PHP 6). Если вы хотите продолжать получать E_STRICT
В php.ini:
error_reporting = E_ALL | E_STRICT
Во время выполнения:
error_reporting( E_ALL | E_STRICT );
Вам необходимо установить уровень сообщения об ошибках (и display_errors ) в php. ini, чтобы увидеть синтаксические ошибки. Если PHP обнаруживает синтаксическую ошибку, среда выполнения не запускается, поэтому установка во время выполнения не будет работать. (См. Ссылку display_errors
.)