我找函數執行此選項:PHP函數用於匹配
preg_match("/^{$STRING}/i", ...)
,但沒有正則表達式,而且必須在第一^
,這意味着這個表達式將是假的:
$search = "hi", $search_in "ahi";
它必須在字符串的開頭。
我找函數執行此選項:PHP函數用於匹配
preg_match("/^{$STRING}/i", ...)
,但沒有正則表達式,而且必須在第一^
,這意味着這個表達式將是假的:
$search = "hi", $search_in "ahi";
它必須在字符串的開頭。
不知道我理解你的要求還有...但是...試試這個:
/** Checks if a target string (haystack) starts with a specified string (needle) */
function startsWith($haystack, $needle) {
return (stripos($haystack, $needle) === 0);
}
/* Usage */
startsWith("ahi", "hi"); // Returns FALSE
startsWith("ahi", "ah"); // Returns TRUE
請注意,您需要使用3個=
跡象,因爲該函數將返回false時,有在字符串中不匹配。
if(stripos($search_in, $search) === 0) {
echo "matched";
}
function startsWithi($haystack, $needle)
{
return substr(strtolower($haystack), 0, strlen($needle))) === $needle;
}
你需要在兩個字符串上的大小寫敏感 – 2012-02-20 16:33:00
strtolower(substr($ haystack,0,strlen($ needle))=== strtolower($ needle) – jgroenen 2012-02-20 17:17:20
stripos($haystack, $needle) === 0
的確切函數,該函數的目的是strncasecmp
。我不知道爲什麼每個人都對最近的stripos
解決方案如此着迷。
儘管它需要的字符串的長度進行比較,並且結果必須取反爲肯定匹配
if (!strncasecmp($string, "search", 6)) {
的優點在於,它實際上只前6個字符進行比較。它不搜索整個主題,並且需要之後進行額外的比較。 (如果用作微優化,則是愚蠢的,但它確實是該任務的功能。)
也許使用$ haystack ,$針,strlen($針)。 – jgroenen 2012-02-20 17:15:24
問題1:正則表達式有什麼問題?問題2:你的意思是在那裏有大括號嗎?使用花括號,你的正則表達式很可能是無效的 – 2012-02-20 16:33:58