Intereting Posts
Как загрузить второй список DropDown из базы данных после первого изменения DropDownList Отправить несколько форм с помощью одной кнопки Конфигурация PHP. Небезопасно полагаться на настройки часового пояса системы PHP не может загружать разделяемые библиотеки как отображать последние последние сообщения на моей странице facebook на моем сайте PHP простой HTML DOM Parser возвращает тарабарщину CSV без кавычек, не работающих с fgetcsv Symfony & Guard: «Токен безопасности был удален из-за исключения AccountStatusException» Как получить значение для снятого флажка в элементе флажка при отправке формы? как использовать solr с mysql и php? Настраиваемые продукты ранжируются в Magento Рекомендации по проверке защищенных методов с помощью PHPUnit (на абстрактных классах) Как распечатать текущий URL-адрес? Простая многоязычная CMS? Возврат ссылки на переменную сеанса из функции eval () в PHP

почему php trim не действительно удаляет все пробелы и разрывы строк?

Я захватываю ввод из файла со следующим кодом

$jap= str_replace("\n","",addslashes(strtolower(trim(fgets($fh), " \t\n\r")))); 

Я также ранее пробовал их при устранении неполадок

 $jap= str_replace("\n","",addslashes(strtolower(trim(fgets($fh))))); $jap= addslashes(strtolower(trim(fgets($fh), " \t\n\r"))); 

и если я эхо $ jap, это выглядит хорошо, поэтому позже в коде, без каких-либо изменений в $ jap, он вставляется в БД, однако я заметил сравнительный тест, который проверяет, что это jap уже в БД, возвращает false, когда i может ясно видеть, что кажущаяся точно такая же запись jap находится в БД. Поэтому я копирую запись jap, которая была вставлена ​​прямо из phpmyadmin или с моего сайта, где отображается jap, и вставляйте его в блокнот, и я замечаю, что он вставляется так … (это точная паста в приведенных ниже цитатах)

"

バ ス に の っ て, う み へ 行 き ま し た»

и, очевидно, мне нужно, это без этого пробела и разрывов или что бы это ни было.

так как я могу сказать, что обрезка не делает то, что говорит, что это будет делать. или им что-то не хватает. Если так, то, что это?

ОБНОВЛЕНИЕ: в ответ на ответ Jacks

preg_replace не помогло, но вот что я сделал, я использовал bin2hex (), чтобы определить, что часть, которая «не является частью, которую я хочу», является efbbbf, я сделал это, взяв $ jap в str replace и удалив japanese i am ожидая найти, и то, что осталось, входит в bin2hex. и результатом было вышеописанное "efbbbf"

 echo bin2hex(str_replace("どちらがあなたの本ですか","",$jap)); 

вывод выше был efbbbf, но что это? могу ли я сделать str_replace, чтобы удалить это как-то?

Related of "почему php trim не действительно удаляет все пробелы и разрывы строк?"

Функция trim не знает о белых пробелах в Юникоде. Вы можете попробовать следующее:

 preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $str); 

Как взято из: Trim unicode whitespace в PHP 5.2

В противном случае вы можете сделать bin2hex() чтобы узнать, какие символы добавляются спереди.

Обновить

В вашем файле содержится спецификация UTF8; удалить его:

 $f = fopen("file.txt", "r"); $s = fread($f, 3); if ($s !== "\xef\xbb\xbf") { // bom not found, rewind file fseek($f, 0, SEEK_SET); } // continue reading here