在正则表达式中允许一些 url
Allow some url in regular expression
我正在使用下面的正则表达式来隐藏网站 url 并且效果很好。
$message_text=preg_replace("/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/", "<website hidden>", htmlspecialchars($message_text));
$message_text 将是一条长消息,其中包含许多 url 以及 facebook.com 或 gmail.com
现在我想允许一些 url,例如 facebook.com 或 google.com 或 http://gmail.com
我在修改这个表达式时遇到了麻烦。
请帮我解决这个问题
谢谢
我认为这对你有用:
<?php
$message_text = "sdfhsdkklsdkjj www.facebook.com www.google.com http://gmail.com";
echo $message_text = preg_replace_callback('/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/',
function ($match) {
$allowed = array("www.facebook.com", "www.google.com");
if(!in_array($match[1], $allowed))
return "<website hidden>";
return $match[1];
}, htmlspecialchars($message_text));
?>
输出:
sdfhsdkklsdkjj www.facebook.com www.google.com <website hidden>
我正在使用下面的正则表达式来隐藏网站 url 并且效果很好。
$message_text=preg_replace("/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/", "<website hidden>", htmlspecialchars($message_text));
$message_text 将是一条长消息,其中包含许多 url 以及 facebook.com 或 gmail.com
现在我想允许一些 url,例如 facebook.com 或 google.com 或 http://gmail.com 我在修改这个表达式时遇到了麻烦。 请帮我解决这个问题 谢谢
我认为这对你有用:
<?php
$message_text = "sdfhsdkklsdkjj www.facebook.com www.google.com http://gmail.com";
echo $message_text = preg_replace_callback('/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/',
function ($match) {
$allowed = array("www.facebook.com", "www.google.com");
if(!in_array($match[1], $allowed))
return "<website hidden>";
return $match[1];
}, htmlspecialchars($message_text));
?>
输出:
sdfhsdkklsdkjj www.facebook.com www.google.com <website hidden>