2013-07-17 116 views
1

有一點編碼問題,我該如何檢查$ row ['value']的值是否包含某些字符,在這種情況下,如果'rename_file'包含一個具有'128'的文件名。我有這個,但它似乎並沒有迴應時。

$row = mysql_fetch_assoc($result); 
{ 
while ($row = mysql_fetch_assoc($result)) 
    { 
    echo $row['c_ID'] . " " . $row['source_file'] . " " . $row['rename_file'] ." " . $row['p_ID']; 
    if ($row['rename_file'] = '%128%') { 
    echo "<p> This is a 128"; 
    } else 
    echo "<br>"; 
    } 
} 

非常感謝。 CP

+0

結果集有多大?你也可以通過在你的數據庫查詢中添加一個WHERE子句來做到這一點。 – andrewsi

+0

@andrewsi因爲他對不包含'128'的條目做了些什麼,所以我不確定這會有助於 – StephenTG

+0

@StephenTG - 好點。我以錯誤的方式解析了這個問題! – andrewsi

回答

1

使用preg_match()

if(preg_match('/128/',$row['rename_file'])){ 
    echo "<p> This is a 128"; 
} else { 
    echo "<br>"; 
} 

或者strpos()

if(strpos($row['rename_file'], '128') !== false){ 
    echo "<p> This is a 128"; 
} else { 
    echo "<br>"; 
} 
+0

感謝隊友,這麼簡單兩種工作! –

+0

@ChrisP嘿,我很高興它的工作:) – DarkAjax

0
if (strpos($row['rename_file'], '128') !== false) { 
    echo "<p> This is a 128"; 
} 
0

如果你的意思是檢查行的每一個值128:

function searchArray($search, $array) 
{ 
    foreach($array as $key => $value) 
    { 
     if (stristr($value, $search)) 
     { 
      return true; 
     } 
    } 
    return false; 
} 

$row = array('c_ID'=>'Prefix_128_ABC','source_file'=>'EFG.xml','rename_file'=>'FOO.xml'); 
if (searchArray('128',$row) !== false) { 
    echo "<p> This is a 128"; 
}else{ 
    echo "<p> This is not a 128"; 
} 

略微修改: http://forums.phpfreaks.com/topic/195499-partial-text-match-in-array/

--OOPS!誤解。那麼,如果你需要的話,你也可以這麼做... -

相關問題