Intereting Posts
PHP Преобразование Windows-1251 в UTF 8 Ваш опыт Перемещение PHP 4 на PHP 5 Использование XAMPP, как мне заменить PHP 5.3 для PHP 5.2? Twitter REST API: возможно ли использовать Hotlink Twitter Images? Почему нет изображения в Firefox? Как установить UTF8 на PHP при подключении к ACCESS 2007 (ODBC) Почему функция как элемент массива в php-классе не работает Разбирайте XML с помощью пространства имен с помощью SimpleXML Почему php5isapi.dll отсутствует после установки PHP для Windows? Показать дублированное предупреждение ключа в определении массива PHP Как я могу обрабатывать субдомены с одной установкой laravel Интерактивная обработка файлов с использованием PHP, jQuery и Ajax JSON DECODE с использованием PHP Возможно ли получить расширение файла, не зная об этом? Zend Framwork 2 – пример конфигурации подключения и тестирования mysqli Я пытаюсь сделать html-форму, которая при заполнении будет вставляться в мою базу данных sql. однако я получаю эту ошибку, ни одна база данных не выбрана

Как удалить символ NULL из строки

У меня есть переменная PHP, которая содержит строку, которая представляет структуру XML. Эта строка содержит илегальные символы, которые не позволяют мне создавать новый объект SimpleXMLElement из строки. У меня нет способа попросить источник содержимого изменить их ответ, поэтому мне нужно выполнить некоторую очистку в этой строке, прежде чем я создам объект SimpleXMLElement.

Я считаю, что характер, вызывающий проблему, – это & ​​# x0; (0x00 (00) HEX), и он находится в одном из текстовых узлов этой строки XML.

Каким образом можно удалить этот символ или другие символы, которые могут сломать объект SimpleXMLElement.

$text = str_replace("\0", "", $text); 

заменит все нулевые символы в $text строке $text . Вы также можете предоставить массивы для первых двух аргументов, если вы хотите сделать несколько замен.

trim () также удалит нулевые символы с любого конца строки источника (но не внутри).

 $text = trim($text); 

Я нашел это полезным для связи сокета-сервера, особенно при передаче JSON вокруг, поскольку нулевой символ вызывает json_decode () для возврата null.

Хотя это, вероятно, не главная цель вашего вопроса, пожалуйста, посмотрите на функции фильтра PHP: http://www.php.net/manual/en/intro.filter.php

Функции фильтра проверяют и дезактивируют значения. Создайте сайт PHP:

 $a = 'joe@example.org'; $b = 'bogus - at - example dot org'; $c = '(bogus@example.org)'; $sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL); if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) { echo "This (a) sanitized email address is considered valid.\n"; } $sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL); if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) { echo "This sanitized email address is considered valid."; } else { echo "This (b) sanitized email address is considered invalid.\n"; } $sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL); if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) { echo "This (c) sanitized email address is considered valid.\n"; echo "Before: $c\n"; echo "After: $sanitized_c\n"; } 

Результат:

Этот (а) дезинфицированный адрес электронной почты считается действительным.

Этот (b) дезинфицированный адрес электронной почты считается недействительным .

Этот (C) дезинфицированный адрес электронной почты считается действительным.

До: (bogus@example.org)

После: bogus@example.org