2014-10-09 71 views
0

我正在閱讀和處理來自一系列文本文件的數據。我注意到我試圖用空格分解一些數據的功能並不總是有效。空格/空格與strrpos

比如我有

MOST_RECENT_RESULT 100作爲我的文本文件的一部分。我一直在使用

$pos = strrpos($string, ' ')

和呼應出在哪裏從右邊最後一個空間是檢查它是否工作正常。這適用於大多數文件。但有些人有空白的職位返回,我覺得很奇怪。所以我從瀏覽器中複製了字符串,然後直接在腳本中運行它,然後返回正確的位置。這導致我相信有某種空白代碼或我在訪問這些文件時在這裏丟失的東西,我試過\r\v\n無濟於事。我如何找出字符串中究竟是什麼字符。如果這確實是真正的問題?

+0

你有權訪問文本文件嗎?你在一臺* nix機器上? – 2014-10-09 18:41:27

+0

@JasonMcCreary是的,我有本地文件。我只是試圖解析它們的負載並整理信息。 – Jonnny 2014-10-09 18:42:08

+2

文件的十六進制或八進制轉儲? – 2014-10-09 18:42:15

回答

-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 2014-10-09 18:54:35

+0

在記事本+ +有一個設置,一旦啓用顯示明文的所有空白(「\ r」,「\ n」等),那麼你就知道該怎麼搜索... – AnchovyLegend 2014-10-09 19:02:10

+0

可能應該添加製表符這也是'\ t'。 – 2014-10-09 19:04:14