2012-09-23 41 views
1

之間的內容,我想兩個詞(word1word2)之間獲取的內容(文本),例如:獲得2個字

word1blablabla Poetry can be divided into several genres, or categories. word2 blablabla

這樣的內容= blablabla Poetry can be divided into several genres, or categories.

但是,存在的問題有時word1word2可以是大寫字母或小寫字母。另一個問題是word1仍然會打印在結果中。它應該被打印。如何處理這個問題?謝謝:)

下面的代碼:

$file = 'word1 blablabla word1 Poetry can be divided into several genres, or categories. word2 blablabla '; 
$word1='word1'; 
$word2='word2'; 
$between = substr($file, strpos($file, $word1), strpos($file, $word2) - strpos($file, $word1)); 
+0

試試preg_match –

+0

@RegisteredUser爲什麼?使用preg_match比使用stripos更好?謝謝 –

+0

正則表達式('preg_match')功能更強大,更靈活,能夠匹配複雜的文本模式。在這種情況下,'stripos()'足以解決字母大小寫問題,因此您不需要增加複雜性。 –

回答

4

可以使用stripos代替strpos

stripos函數 - 查找 不區分大小寫字符串中第一次出現的位置一個字符串

+0

哦,謝謝..另一個問題是'word1'仍然會打印在結果中。 –

+1

'stripos()'返回第一個單詞_begins _...的位置,以便排除它,將其長度添加到結果的開始偏移處:'substr($ file,stripos($ file,$ word1)+ strlen ($ word1),...)' –

+0

@CoreXii'word1'由5個字母組成。所以我應該使用substr($ file,(stripos($ file,$ word1)+5)'是不是正確?cmiiw –