2013-05-17 39 views
1

我一直在努力解決這個問題很長時間, ,但直到現在還沒有成功。如何從CDR文件中的get_file_contents()生成字符串內部的字符串

我需要抓取一個字符串,當保存CDR文件時傳遞給Keywork,但據我所知,我剛剛失敗了!

即使它顯示在瀏覽器中,我也無法讀取子字符串。

要搜索的字符串爲這個測試是「TESTKEYWORD」, 以下是我的代碼:

<?php 
$filename = "test.cdr"; 
$content = file_get_contents($filename); 

if(strpos($content, 'TESTKEYWORD') !== false) { 
    echo "I found the TESTKEYWORD string"; 
} else { 
    echo "Sorry, I failed to find theTESTKEYWORD string!"; 
} 

echo '<h2>Genarated string</h2>'; 
echo '<hr />'; 
echo $content; 

如果你想嘗試,我在我的web服務器進行測試上傳,這樣你就可以訪問從那裏。

http://liuitt.com/cdr

+0

如果你的文件是UTF-8編碼,你應該看看這裏的http://計算器。 com/questions/15050710/php-strpos-substr-with-utf-8 –

+0

@HenriqueBarcelos,當我測試以檢測字符串編碼時,它返回NULL –

+0

http://php.net/manual/en/function.mb- strpos.php –

回答

0

我認爲最好的辦法是,這是使用preg_match()命令執行,嘗試下面的代碼

<?php 
$filename = "test.cdr"; 
$content = file_get_contents($filename); 

$reex = "/TESTKEYWORD/"; 

if(preg_match($reex, $content, $matches)) { 
    var_dump($matches); 
    echo "I found the TESTKEYWORD string"; 
} else { 
    echo "Sorry, I failed to find theTESTKEYWORD string!"; 
} 
+0

我測試了您共享的代碼,但即使對於傳遞給正則表達式的任何內容,它也會返回true ... –

+0

對不起,我發佈答案之前無法進行正確的測試,我認爲問題在於你的內容中有特殊字符。也許你可以看看「preg_quote」函數來逃避它們,然後執行preg_match。希望這會有所幫助。 – Thanu