пробелы / пробелы с strrpos

Я читаю и манипулирую данными из ряда текстовых файлов. Я заметил, что моя функция разбивать некоторые данные на пробелы не всегда работает.

Например, у меня есть

MOST_RECENT_RESULT 100 как часть моего текстового файла. Я использую

$pos = strrpos($string, ' ')

и повторить, где последний пробел справа, чтобы убедиться, что он работает нормально. Это работает для большинства файлов. Но у некоторых есть пустые позиции, которые я нашел странными. Поэтому я скопировал строку из моего браузера и напрямую запустил ее в сценарии, а затем вернул правильную позицию. Что заставляет меня верить, что есть какой-то пробельный код или что-то, чего мне здесь не хватает при доступе к файлам, я пытался \r \v \n но безрезультатно. Как мне узнать, какой именно символ находится в строке? Если это действительно актуальная проблема?

0

Решение

Это должно работать. Вы можете настроить str_replace() массив для включения символов, необходимых для определения позиции определенного типа пробела, который вы пытаетесь обнаружить:

 $string = "MOST_RECENT_RESULT 100";
$string = str_replace(array("\r", "\n", "\r\n", "\v", "\t", "\0","\x"), " ", $string);
$pos = strrpos($string, ' ');
echo $pos;
0

Другие решения

Я думаю, что я решил это, или по крайней мере продвинул это:

$new = preg_replace('/[\s\W]+/', ' ', $value);
$position = strrpos($new, ' ');

Преобразует не символы в буквальное пространство.

-1

По вопросам рекламы [email protected]