2011-10-17 3 views
0

私はユーザーが記事とその参照(ウィキペディアのような)を入力したというウェブサイトを持っています。データベースに保存された参照がaddresses.Iはネットからのハイパーリンクの検証スクリプトを得たウェブアドレスと非ウェブの両方が含まれ、以下のスクリプトがあり、これは、このサイト How to hyperlink a web address or a non web address in phpこのPHPハイパーリンク検証スクリプトで何が間違っています

//url validation 

if (preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url)) 

{ 
echo("<br><a rel=nofollow target=_blank href=". urlencode($row['ref'])." class=art>$row[ref]</a>"); 


} 
//if it is not a url 
else { 
    echo("<br><a rel=nofollow target=_blank href='http://www.google.com/search?q=".urlencode($row['ref'])."' class=art>$row[ref]</a>"); 
} 
の私似ていますが同じではないクエリです

スクリプトそれproperly..but働いているがwebaddressのハイパーリンクは、(非webaddress作業罰金)

eg: if $url is http://www.washingtonpost.com 

このスクリプトは

 www.mywebsite.com/http://www.washingtonpost.com 
としてハイパーリンクがあるが起こっていないようです

私は実際に

 http://www.washingtonpost.com 

は、あなたが私を助け、また、あなたの助けのための高度な感謝してくださいことができますしたいです。

+0

なります

echo("<br><a rel=nofollow target=_blank href=". urlencode($row['ref'])." class=art>$row[ref]</a>"); 

でurlencode()を削除し、あなたのコードが生成する実際のHTMLを投稿してください。リンクするかどうかを理解することは難しい –

答えて

0

完全なURLにurlencodeを使用しないでください。ページのそれと同じディレクトリに相対的にリンクされます

のhttp%3A%2F%2Fwww.somesite.com%2F

http://www.somesite.com/

のように出てくる:それはのようなURLを行いますだった。

So:完全なURLにはurlencodeを使用しないでください。

0

ので、あなたのスクリプトが

echo("<br><a rel=nofollow target=_blank href=". $row['ref']." class=art>$row[ref]</a>"); 
関連する問題