2011-01-12 88 views
6

我有一個PHP應用程序的一部分,用於評估用戶輸入的長字符串,並提取一個始終在用戶提供的字符串中輸入20個字符的數字。如何從PHP中的字符串中提取子字符串,直到它達到某個字符?

唯一的問題是,我不知道每個用戶的數量多長時間會的,我所知道的是數量的結束總是跟着一個雙引號(「)。

如何我可以使用PHP字符串函數提取一個子開始形成一個特定的點,並結束當它擊中一個雙引號?

在此先感謝。

回答

11

您可以使用strpos獲得的"從第一位置位置20:

$pos = strpos($str, '"', 20); 

即位置隨後可用於獲取子:

if ($pos !== false) { 
    // " found after position 20 
    $substr = substr($str, 20, $pos-20-1); 
} 

第三參數的計算是必要的,因爲substr預計串的長度,而不是結束位置。還請注意substr返回false如果不能在乾草堆中找到。

+0

美麗的+1 .. – 2011-01-12 21:17:45

0
<? 

$str = substring($input, 20, strpos($input, '"') - 20); 
echo $str; 

?> 

或者類似的東西等

1
$nLast = strpos($userString , '"'); 
substr($userString, 0, $nLast); 
0

發現後的20個字符雙引號的第一次出現,19。減去 - ,爲您提供所需的子字符串的長度:

$dq = strpos($string,'"',19); //19 is index of 20th char 
$desired_string = substr($string,19,$dq-19); 
0

去只需加上Gumbo的答案,以防您需要子字符串功能幫助:

$pos = strpos($str, '"', 20); 
$substring = substr($str, 20, $pos); 
相關問題