私はいつでも次のことをすることを発見しました:
echo '<a href="http://" title="bla">huzzah</a>';
最終的に、ブラウザに次のようにレンダリングされます。
<a href="http:///" title="bla">huzzah</a>
これは、拡張子が付いたファイルにリンクするとリンクが切断されるため、特に厄介です。
なぜこれが起こっているのか、そしてどうすればそれを修正できるのか、何か考えはありますか?
更新: 私の正確な実装について質問する人のために、ここにあります。私のトラブルシューティングでは、できる限りそれを呟いたので、プレーンテキストをプレーンテキストに連結する場所を気にしないでください...
function print_it($item) {
echo '<div class="listItem clearfix">';
echo '<div class="info">';
echo '<span class="title">';
if(isset($item[6])) {
echo '<a href="http://" title="">' . 'me' . '</a>';
}
echo '</span>';
echo '</div></div>';
}
更新: Matt Longに応えて、私はあなたの行に貼り付けました、そしてそれは同じようにレンダリングしました。
更新: Fire Lancerに対応して、元の試みに戻しました。以下に両方を示します。
echo substr($item[6],13) . '<br>';
echo '<a href="http://' . substr($item[6],13) . '" title="' . $item[0] . '">' . $item[0] . '</a>';
<span class="title">www.edu.gov.on.ca%2Feng%2Ftcu%2Fetlanding.html<br>
<a href="http://www.edu.gov.on.ca%2Feng%2Ftcu%2Fetlanding.html" title="Employment Ontario">Employment Ontario</a></span>
substr'ingの理由は、URLが他の場所でrawurlencode()を介して実行されているためであり、http%3A%2F%2Fにリンクすると、ページはローカル/相対リンクであると見なされます。
更新: 私は実際にそれを見ずに上記の応答を貼り付けました。したがって、ソースを表示するときのHTMLは正しいですが、実際のページは、その後に別のスラッシュを付けて解釈します。
解決策: これはすべてrawlurlencode()の結果でした。デコードしたり、エンコードをすべてスキップしたりすると、すべてが完全に機能しました。rawurlencode()に関する何かが、ブラウザに末尾のスラッシュをそこに貼り付けたくなるようにします。