0

我需要在 drupal 中编写一个自定义模块来帮助我进行位置搜索。最初我只需要从查询中删除一个逗号,然后我意识到我需要用它们的缩写(加利福尼亚 - > CA)替换所有状态实例,因为信息是如何存储在我的数据库中的。但是,这样做后,我发现我使用 preg_replace 的方法似乎取决于大写/小写。所以在这一行:

$form_state['values'] = preg_replace("/alabama/", 'al', $form_state['values']);

"alabama" 将被替换为 "al",但 "Alabama" 或 "ALABAMA" 不会。有没有办法在不考虑外壳的所有可能变化的情况下用其缩写替换任何 Alabama 实例?

4

2 回答 2

6

您也可以尝试 str_ireplace()它不区分大小写

<?php
$str = 'alabama ,Alabama,ALABAMA';
$replace = str_ireplace('alabama','al',$str);
echo $str;
echo "<br/>";
echo $test;
?>
于 2012-06-21T07:32:35.013 回答
5
$form_state['values'] = preg_replace("/alabama/i", 'al', $form_state['values']);

'i' 修饰符将使模式不区分大小写。

于 2012-06-21T07:11:53.500 回答