【发布时间】:2017-11-28 14:52:15
【问题描述】:
我的申请需要帮助。我想将子字符串与正则表达式匹配,然后提取它。有我的代码:
$text = getTranslation('end_date', $translation);
if (strstr($text, "/@:url[.*?]/")){
$text = str_replace("/@:url[.*?]/", "<a href='$promo->wabsiteUrl'>ANYTHING</a>", $text);
}
echo $text;
getTranslation() 是我创建的一种方法,用于在我的对象$translation 中获取翻译项end_date。问题是我对正则表达式很不好。我尝试了一些东西,但它不起作用。
下面是变量$text 的含义:@:url[Click here] to find out where to buy Razer inc.(来自$translation)
@:url 等于我的推广网站,然后[] 中的内容是我的<a href=""></a> 元素的文本。
所以,我需要寻找@:url[ANYTHING],然后提取ANYTHING 来创建这个<a href="">ANYTHING</a>
【问题讨论】:
-
永远不要使用
strstr()来检查子字符串是否存在,使用strpos()因为它更有效。手册建议:Note #2@php.net/manual/en/function.strstr.php -
...当然,如果您使用
preg_replace(),则没有理由首先检查子字符串是否存在——如果子字符串不存在,该函数将不会替换任何内容。
标签: php html regex string preg-replace