2

私は次のコードを持っています:

<div><strong>Name: </strong><?php echo anchor('http://'.$link, $row->Name); ?></div>

これは、ユーザーがリンク($ link)を入力し、URLをアンカータグに配置します。ただし、外部リンクにリダイレクトするのではなく、保存されているURLを使用してサイトのベースURLを修正するだけです。送信されたリンクの先頭に「http://」を追加しようとしましたが、ユーザーがリンク入力ですでにhttpを指定していない限り機能します。これを克服する方法についてのアドバイスは素晴らしいでしょう。

4

1 に答える 1

6

はい、ドキュメントに従って、サイトanchor()のURLに基​​づいてリンクを作成します。

URLのプレフィックスが。である場合に期待どおりに機能しているがhttp://、ユーザーが追加するhttp://場合としない場合がある場合は、リンクをチェックして問題がないかどうか、またはプレフィックスが必要かどうかを判断できます。以下を使用した基本的な例を次に示しstrposます。

if(strpos($link, 'http') === FALSE){
    // link needs a prefix...
    $link = 'http://' . link;
} else {
    // link is ok!
}

... CodeIgniterのprep_url()関数を使用します(@cchanaに思い出させてくれてありがとう!):

この関数は、スキームがURLにない場合に、http://を追加します。次のような関数にURL文字列を渡します。

$url = "example.com";

$url = prep_url($url);
于 2012-04-05T04:04:21.687 に答える