php中的substring,无论单词是字符串中的第一个还是最后一个

时间:2016-02-04 08:28:01

标签: php substr strpos

我有这条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"在字符串的开头或结尾。我的最终结果将始终是

"奥尔"

2 个答案:

答案 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.