我有这条PHP在字符串中查找广告系列名称,然后在广告系列名称出现时使用substr。
$chars = array("æ", "ø", "å");
$replace = array("ae", "oe", "aa");
$dash = strpos(utf8_decode($campaign["campaign_name"]), "Studiepakke");
$decoded_name = utf8_decode($campaign["campaign_name"]);
$id_name = str_replace($chars, $replace, trim(strtolower(substr($decoded_name, 0, ($dash-2)))));
$lpage_pos = strripos($id_name, $_GET["lpage"]);
$short_name = strtolower(utf8_decode($campaign["adset_name"]));
$dash_pos = strpos($short_name, " - ");
$ campaign [" campaign_name"]看起来像" aalborg - studiepakke",但它也可能是" studiepakke - aalborg"
我如何使用substr和strpos,这是不重要的" Studiepakke"在字符串的开头或结尾。我的最终结果将始终是
"奥尔"
答案 0 :(得分:1)
如果我做得对,你可能想要将短划线分开。 为此,请使用
$substrings = explode(" - ", $string);
这将为您提供一个子字符串数组,然后您可以检查哪一个是搜索的字符串。
您还可以使用字符串替换来用空字符串替换不需要的部分。
str_replace()
str_ireplace() // case insensitive
答案 1 :(得分:0)
对于您所描述的问题,我有一些不同的方法:
if(strpos($campaign["campaign_name"], "studiepakke")) //studiepakke is part of the string.
或者:
if(preg_match("/(^studiepakke|studiepakke$)/i", $campaign["campaign_name"])) //studiepakke is exacly at begin or ending of the string.