我知道這並不回答OP的問題,但想評論,因爲這個網頁是在谷歌的頂部針對與多個針的strpos。這裏有一個簡單的解決方案,這樣做的(再次,這是不特定的OP的問題 - 對不起):
$img_formats = array('.jpg','.png');
$missing = array();
foreach ($img_formats as $format)
if (stripos($post['timer_background_image'], $format) === false) $missing[] = $format;
if (count($missing) == 2)
return array("save_data"=>$post,"error"=>array("message"=>"The background image must be in a .jpg or .png format.","field"=>"timer_background_image"));
如果2項被添加到$缺陣,這意味着,輸入不符合任何$ img_formats數組中的圖像格式。在這一點上,你知道,你可以返回一個錯誤等,這可以很容易地變成一個小功能:
function m_stripos($haystack = null, $needles = array()){
//return early if missing arguments
if (!$needles || !$haystack) return false;
// create an array to evaluate at the end
$missing = array();
//Loop through needles array, and add to $missing array if not satisfied
foreach ($needles as $needle)
if (stripos($haystack, $needle) === false) $missing[] = $needle;
//If the count of $missing and $needles is equal, we know there were no matches, return false..
if (count($missing) == count($needles)) return false;
//If we're here, be happy, return true...
return true;
}
回到我們的第一個例子中使用則代替功能:
$needles = array('.jpg','.png');
if (!m_strpos($post['timer_background_image'], $needles))
return array("save_data"=>$post,"error"=>array("message"=>"The background image must be in a .jpg or .png format.","field"=>"timer_background_image"));
中當然,在函數返回真或假之後你做什麼取決於你。
你處理什麼樣的數據的預浸比賽?什麼是可能的針頭值?你是否尋找整個單詞或子序列? –
總體目標是什麼? – 2011-08-01 09:47:48
這是爲我的博士論文。我必須在文本中找到所有[命名實體](http://en.wikipedia.org/wiki/Named_entity_recognition)。例如,讓我們假設我有一本所有國家的字典和許多城市中的另一個。我想搜索給那些字典的文本。 –