Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用preg_匹配的链接缩短器_Php_Regex - Fatal编程技术网

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错误中: