Получить заголовок веб-страницы из URL в PHP не работает - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь получить определенную ссылку через пост и удалить заголовок этой HTML страницы. Затем я сохраню заголовок страницы в моей MySQL базе данных.

Перед внедрением этой функции на моем реальном онлайн-сервере я протестировал функцию page_title (которая является пользовательской функцией, которая читает заголовок страницы HTML данного URL) на моем локальном сервере, и она работала хорошо. Вот код, который я использовал на моем локальном сервере .

<?php 
   $link = $_POST['link'];
   function page_title($url) {
   $fp = file_get_contents($url);
   if (!$fp)
       return null;

   $res = preg_match("/<title>(.*)<\/title>/siU", $fp, $title_matches);
   if (!$res)
       return null;

   // Clean up title: remove EOL's and excessive whitespace.
   $title = preg_replace('/\s+/', ' ', $title_matches[1]);
   $title = trim($title);
   return $title;
  }

  $title= page_title($link);
  echo $title;   ?>

Однако, когда я использовал этот же код на своем онлайн-сервере для фактической отправки sh данных в базу данных MYSQL, функция, похоже, не возвращает ничего но пустая строка. В результате, когда я проверяю свой php myadmin, в столбце «title» ничего не появляется. Может кто-нибудь сказать мне, что я могу сделать, чтобы сделать эту работу? Спасибо!

1 Ответ

0 голосов
/ 26 марта 2020

Я предлагаю упростить это, выполнив это (удалите комментарии, так как слишком много информации):

<?PHP

# Get the HTML from a web page
$html = file_get_contents("http://whatever.url");

# Get all HTML titles in to an array (this is your own code)
$res = preg_match("/<title>(.*)<\/title>/siU", $html, $titleArray);

# Get the first array entry - and an empty string if the tag does not exists
$title = isset($titleArray[0]) ? $titleArray[0] : "";

# Remove HTML tags from the string
$title = strip_tags($title);

# Show the title - convert HTML tags just to show it does not have any
echo "[". htmlentities($title) ."]";

# Save it to your database ...

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...