2014-10-09 3 views
0

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

К примеру у меня есть

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

$pos = strrpos($string, ' ')

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

+0

У вас есть доступ к текстовому файлу? Вы на машине * nix? –

+0

@JasonMcCreary Да У меня есть файлы локально. Я просто пытаюсь разобрать их и сопоставить информацию. – Jonnny

+2

hex или восьмеричный дамп файла? –

ответ

-1

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

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

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

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

Но проблема в том, что я не знаю, что это за персонаж. Я пробовал все из них в вашем массиве. Цените помощь, хотя. – Jonnny

+0

В блокноте ++ есть параметр, который после включения показывает все пробелы в открытом тексте («\ r», «\ n» и т. Д.), Тогда вы знаете, что искать ... – AnchovyLegend

+0

, вероятно, должен добавить символ табуляции в это также '\ t'. –

Смежные вопросы