我需要在drupal中编写一个自定义模块来帮助我进行位置搜索。最初我只需要从查询中删除一个逗号,然后我意识到我需要用缩写(California - > CA)替换所有状态实例,因为信息存储在我的数据库中。但是,在执行此操作后,我发现使用preg_replace的方法似乎依赖于大写/小写。所以在这一行:
$form_state['values'] = preg_replace("/alabama/", 'al', $form_state['values']);
“alabama”将被替换为“al”,但“Alabama”或“ALABAMA”将不会。有没有办法用它的缩写替换任何Alabama实例而不考虑外壳中每种可能的变化?
答案 0 :(得分:6)
你也可以尝试 str_ireplace()它不区分大小写
<?php
$str = 'alabama ,Alabama,ALABAMA';
$replace = str_ireplace('alabama','al',$str);
echo $str;
echo "<br/>";
echo $test;
?>
答案 1 :(得分:5)
$form_state['values'] = preg_replace("/alabama/i", 'al', $form_state['values']);
'i'修饰符将使模式不区分大小写。