php - 匹配字符串中的精确字符串

标签 php

我遇到一个问题,代码为所有“女性”值返回“男性”,因为它还包含术语“男性”。我试过 "~\bWord\b~"是徒劳的。

如何编辑下面的代码以返回不同的值?

function replaceWords($value) {
//here are predefined values
$predefined = array(
array(
'search'=>'Women',
'replaceWith'=>'Women'
),
array(
'search'=>'Men',
'replaceWith'=>'Men'
)
);
//search and replace
$found = false;
foreach ($predefined as $item) {
$search = array_map('trim', explode(',', $item['search']));
foreach ($search as $s) {
if (strstr(strtolower($value), strtolower($s))) {
$found = true;
$value = $item['replaceWith'];
break;
}
}
}
return ($found)?$value:"";
}

非常感谢您的帮助。

最佳答案

不要使用 strtolower()

如果您保持区分大小写,“Women”和“Men”将不会匹配。

关于php - 匹配字符串中的精确字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661306/

相关文章:

php - Ajax/jquery 如何在不刷新页面的情况下从按钮单击发送数据

javascript - 使用Vanilla JS动态更新页面内容

php - phpDocumentor 死了吗?

php - 如何刷新框架集中的所有页面

php - 如何在 PHP 中保存早于时间戳的日期

PHP session 数组 - 存储具有不同值的相同项目

PHP 如果未定义,则在 GET 值上设置默认值

javascript - 在 PHP 和/或 JavaScript 中获取最后四个星期日

php - PayPal REST 设置对我的用户来说太高级了,有替代方案吗?

php - htaccess,一些重写 url 给我错误 404