2013-07-17 6 views
1

Имея немного проблемы с кодированием, как я могу проверить, содержит ли значение $ row ['значение'] определенные символы, в этом случае, если '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! Неправильно. Ну, вот как вы это сделаете, если вам тоже понадобится ... -