2012-12-20 173 views
0

選詞XX總是改變和字符串可長可短,甚至可以不搜索詞,其中XX是一個數字 例如:PHP從字符串中的字符串

1 kom. nije naručeno, obično dolazi za 5 dana., slični: sony-6am6ptb1a (0 kom.), sony-s006pb1a (-9 kom.) 

所以我需要輸出:običnodolazi za 5 dana

那麼我怎麼才能在任何情況下選擇&?

$find = "obično dolazi za XX dana."; 

$string ="1 kom. nije naručeno, obično dolazi za XX dana."; 

if (strpos($string,$find) !== false) { 
    echo '$string contains $find'; 
} 

我覺得這是它:

$string = "1 kom. nije naručeno, obično dolazi za XX dana."; 

for(int intIndex = 1; intIndex <= 31; intIndex++) 
{ 
$find = "obično dolazi za " . strval(intIndex) . " dana." 

if (strpos($string,$find)) 
{ 
echo '$string contains $find'; 
} 
} 
+2

對不起,我不知道你在問什麼,請重新陳述你的問題。 –

+3

你爲什麼問?你的代碼會工作......或者我誤解了這個問題 – Nemoden

+2

['mb_stripos()'](http://php.net/manual/en/function.mb-stripos.php) – DaveRandom

回答

0

我假設的「搜索字符串」有一個部分(XX)的更改,你不一定知道它會在什麼給定的情況。所以你不能使用strpos因爲未知的部分。

您必須使用基於搜索字符串的左側和右側部分的正則表達式。

有關更多詳細信息,請參閱PHP Manual: preg_match

不知道'XX'代表什麼我不能提供更多。

或者......

如果你想要回XX和最左邊和最右邊,大部分地區是不變的...

// given '1 kom. nije naručeno, obično dolazi za XX dana.' 

$string = str_replace("1 kom. nije naručeno, obično dolazi za ", "", str_replace(" dana.", "", $string)); 
// $string now contains the value of 'XX' 

print $string; 

輸出爲XX

或...

這是否足夠滿足您的需求..? [這是基於你想出的! :)]

<?php 
    // just throwing '23' in there to demonstrate the awesome power! 
    $string = "1 kom. nije naručeno, obično dolazi za 23 dana."; 
    for ($intIndex = 1; $intIndex <= 31; $intIndex++) { 
     $find = "1 kom. nije naručeno, obično dolazi za " . strval($intIndex) . " dana."; 

     // we test that it's not 'false', because it could be '0' 
     if (strpos($string, $find) !== false) { 
      echo "$string contains $find"; 
     } 
    } 
?> 
+0

XX是天數,我不知道會是什麼 – mehnihma

+0

你是否想要返回天數? –

+0

我認爲這是它 $ string =「1 kom。nijenaručeno,običnodolazi za XX dana。」; (int intIndex = 1; intIndex <= 31; intIndex ++) { $ find =「običnodolazi za」。 strval(intIndex)。 「達娜。「 如果(strpos($字符串,$ FIND)){ 回聲 '$字符串包含$找到';} ? } – mehnihma

0

我要猜你有問題,與輸出...及其返回

$string contains $find 

使用"而不是'

$find = "obično dolazi za XX dana."; 
$string ="1 kom. nije naručeno, obično dolazi za XX dana."; 
if (mb_stripos($string,$find) !== false) { 
    echo "$string contains $find"; 
} 

輸出

1 kom. nije naruÄeno, obiÄno dolazi za XX dana. contains obiÄno dolazi za XX dana. 
+0

是類似的東西,XX在這種情況下 只是一個數字,數天我只需要選擇字符串 – mehnihma

+0

的特定部分我已經編輯了問題 – mehnihma

+0

我真的不明白你真的很想實現 – Baba