Php 使用preg_匹配的链接缩短器
我的代码是:Php 使用preg_匹配的链接缩短器,php,regex,Php,Regex,我的代码是: if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url)) { echo "<strong>Error</strong>: Invalid mysite.com link or could shorten link"; } 我正在开发一个链接缩短器,类似于bit.ly,但我只希望它能缩短我特定站点的链接 我需要有关此错误的帮助。问题在这里: if (!preg_match('^http(s)
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
{
echo "<strong>Error</strong>: Invalid mysite.com link or could shorten link";
}
我正在开发一个链接缩短器,类似于bit.ly,但我只希望它能缩短我特定站点的链接
我需要有关此错误的帮助。问题在这里:
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
^
您使用了*量词,但未指定该量词应应用于什么。您可能想要。*除了*之外,问题在于:
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
^
您使用了*量词,但未指定该量词应应用于什么。您可能想要。*在那里,星号或星号代替了*告诉引擎尝试匹配前面的标记零次或多次
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
↑
nothing to match
我相信您的正则表达式模式包含多个错误。我建议你和我一起去
if (!preg_match('/^https?:\/\/(?:[a-z\d-]+\.)*mysite.com(?:(?=\/)|$)/i', $url))
星号或星号指示引擎尝试匹配前面的标记零次或多次
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
↑
nothing to match
我相信您的正则表达式模式包含多个错误。我建议你和我一起去
if (!preg_match('/^https?:\/\/(?:[a-z\d-]+\.)*mysite.com(?:(?=\/)|$)/i', $url))
为什么总是那些几乎看不见的小事!。谢谢,伙计们正在工作!你为什么省略了字符串的结尾标记???这可能导致潜在的攻击@JanDvorak-我相信OP希望检查$url是否包含域名mysite.com,因此$url的尾部并不重要。但主要部分是!你没有在我评论的版本中包含相应的标记。@JanDvorak-很难理解OP真正想要什么。欢迎你发表你自己的答案。为什么总是那些几乎不可察觉的小事呢!。谢谢,伙计们正在工作!你为什么省略了字符串的结尾标记???这可能导致潜在的攻击@JanDvorak-我相信OP希望检查$url是否包含域名mysite.com,因此$url的尾部并不重要。但主要部分是!你没有在我评论的版本中包含相应的标记。@JanDvorak-很难理解OP真正想要什么。欢迎您发布自己的答案。还有一件事:正则表达式缺少分隔符。它需要包装在一对.OP的模式中,并使用^作为分隔符@Ω在这种情况下,它缺少正则表达式的开头@Ωmega,这就是他来这里的原因。@codeaddit你似乎是最有知识的人,我如何才能让这个错误显示在div错误中:还有一件事:正则表达式缺少分隔符。它需要包装在一对.OP的模式中,并使用^作为分隔符@Ω在这种情况下,它缺少正则表达式的开头@Ωmega,这就是他来这里的原因。@codeaddit你似乎是最有知识的人,我如何才能让这个错误显示在div错误中: