2012-12-20 5 views
0

에서 단어를 선택하고 문자열이 길거나 짧아 질 수 있으며 XX는 숫자 예입니다 검색 단어없이 될 수 있습니다 것과 그래서PHP는 XX가 항상 변경되는 문자열의 문자열

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

출력이 필요합니다 : obično dolazi 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'; 
} 

나는이 그것은 생각 : 나는 '검색 문자열이'일부 (XX)가 있다고 가정 것을 변경하고 당신은 반드시이 될 것 모르는입니다

$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

주어진 상황. 따라서 알 수없는 세그먼트로 인해 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. nije naručeno, obično dolazi za XX dana."; (int intIndex = 1; intIndex <= 31; intIndex ++) { $ find = "obično dolazi za" strval (intIndex). "데이나." 은 (strpos ($ 문자열, $ 찾기)) { 에코 '$ 문자열을 찾을 수 $을 포함'; } 경우? 작업 코드 @mehnihma } – 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