Я обнаружил, что каждый раз, когда я делаю следующее:
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>';
}
Обновление:
В ответ на Мэтта Лонга я вставил в вашу строку, и она отрисовала то же самое.
Обновление:
В ответ на 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>
Причина подстановки заключается в том, что URL-адрес проходит через rawurlencode () в другом месте, а ссылка на http% 3A% 2F% 2F заставляет страницу думать, что это локальная / относительная ссылка.
Обновление:
Я вставил вышеупомянутый ответ, не смотря на это. Таким образом, HTML-код корректен при просмотре исходного кода, но фактическая страница интерпретирует его с другой косой чертой после него.
Решение:
Все это было результатом rawlurlencode (). Если я расшифровал или пропустил кодировку все вместе, все работало отлично. Что-то в rawurlencode () заставляет браузер добавлять туда косую черту.