在字符串中的字符后格式化一个变量
我几次使用名为$ contact_location的变量。在字符串中的字符后格式化一个变量
它工作正常,直到我需要使用它的URL。
例字符串:
"Hello, from $contact_location, please visit www.ourwebsite.com/$contact_location"
output: Hello, from New Mexico, please visit www.ourwebsite.com/New Mexico.
Needed Output: Hello, from New Mexico, please visit www.ourwebsite.com/new-mexico
有没有办法只格式化如果它像经过变量“的.com /”
的网址应为www.ourwebsite.com/new-墨西哥
我知道如何str_replace函数
str_replace(" ","-",$contact_location);
试试这个:
<?php
function formatUrl($msg)
{
$pattern = '/www\..*/';
preg_match($pattern, $msg, $matches);
return preg_replace($pattern, strtolower(str_replace(' ','-',$matches[0])),$msg);
}
$contact_location = 'New Mexico';
$msg = formatUrl("Hello, from $contact_location, please visit www.ourwebsite/$contact_location");
var_dump($msg);
通过使用preg_match
和preg_replace
,你可以easilly执行基于模式的字符串替换。
我假设你正在寻找一个网站内容改变,所以,我的模式是'/www\..*/'
。但是,如果您想要更改它,请参阅您的问题中提到的.com
,只需将$pattern
值替换为您希望的匹配。
谢谢!那很完美!! – corporalpoon
不客气。 – Abe
$text = "Your text will be here www.yourdomain.com";
$contact_location = "new-maxico";
if (stripos($text, ".com") !== false) {
$text = $text . "/" . $contact_location;
}
这将帮助你肯定
谢谢,但我需要在url之前使用$ contact_location并保持不变。 – corporalpoon
我想你已经提到你需要它在上面的评论队友中的URL。 那么,你可以分享我你想怎么样,我可以帮你吗? –
见上文。我说我需要$ contact_location才能保持不变,如果它不在URL中的话。你的改变无处不在 – corporalpoon
请澄清你的问题。你想要* .com *后的变量还是应该替换* .com *? – Script47
.com后的变量,所以URL是正确的。例如:ourwebsite.com/new-mexico – corporalpoon
利用正则表达式来做到这一点。 – Script47