Динамическое создание ссылки из строки URL в таблице БД на страницу HTML / PHP

Я пытаюсь создать страницу PHP, которая извлекает результаты из таблицы базы данных MySQL на сервере (www.domain.com).

Таблица имеет следующие поля:

ID (то есть: 1)
Дата (то есть: 2014-12-06)
Текст (например: Guns 'n Roses)
URL (то есть: https://www.youtube.com/watch?v=xxxxxxx)
Ссылка (например: смотреть на YouTube)

URL-адрес привязан к тексту ссылки на веб-страницу.

Мой запрос прост и понятен: простой select * from table, При запуске страница PHP выводит на экран следующую таблицу:

2014-12-06 --- Guns 'n Roses --- Watch on YouTube

где, нажав «Смотреть на YouTube», фактический адрес становится:

www.domain.com/https://www.youtube.com/watch?v=xxxxxxx

Как избавиться от корня сервера и получить работающую ссылку?

Код является:

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
</head>

<body>

<div id="youtube">

<?php

require "parameters.php";

$con = mysqli_connect($host,$user,$password,$db);

if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT Date, Text, URL, Link FROM $db.$table_10 ORDER BY date desc");

echo "<table>";
echo "<tr><th>Date</th><th>Text</th><th>Link</th></tr>";
echo "<tr><td></br></td></tr>";while($row = mysqli_fetch_array($result)) {
$safe_url = mysqli_real_escape_string($con, $row['URL']);
echo "<tr>";
echo "<td>" . $row['Date'] . "&#160;&#160;</td>";
echo "<td>" . $row['Text'] . "</td>";
echo "<td><a href=" . $safe_url . " " . "target="."_blank".">" . $row['Link'] . "</a></td>";
echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>

</div>

</body>
</html>

Спасибо за ответ и помощь!

1

Решение

Если ссылка не имеет префикса протокола, она становится относительной к странице, содержащей ссылку.

<a href="example.com/somepage">Webpage</a>

становится http://example.net/example.com/somepage при нажатии

<a href="http://example.com/somepage">Webpage</a>

становится http: //example.com/somepage

Когда вы отображаете ссылку, добавьте к ней префикс http: //

Вот JSFiddle, показывающий это, http://jsfiddle.net/7fnpg5o1/

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]