1

私のコードは次のとおりです。

if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
{
  echo "<strong>Error</strong>: Invalid mysite.com link or could shorten link";
} 

そして私は得ました:

Warning: preg_match() [function.preg-match]: 
  Compilation failed: nothing to repeat at offset 12

bit.lyに似たリンク短縮サービスに取り組んでいますが、特定のサイトからのリンクを短縮したいだけです。

このエラーについて助けが必要です。

4

2 に答える 2

5

問題はここにあります:

if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
                              ^

量指定子を使用し*ましたが、この量指定子を何に適用するかを指定していません。あなたはおそらく.*ただの代わりにそこにいたかったのです*

于 2012-10-22T15:05:21.037 に答える
5

アスタリスクまたはスターは、前のトークンとの一致を 0 回以上試行するようにエンジンに指示します。

if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
                              ↑
                       nothing to match

あなたの正規表現パターンには複数のエラーが含まれていると思います。一緒に行くことをお勧めします

if (!preg_match('/^https?:\/\/(?:[a-z\d-]+\.)*mysite.com(?:(?=\/)|$)/i', $url))
于 2012-10-22T15:05:41.637 に答える