我有一堆链接。我需要从中提取标题。所以,我想让textarea粘贴链接和按钮,如“获取标题”来提取标题。我做了一个从一个URL中提取标题的函数。它工作正常。我是PHP的新手,我不知道如何检测换行符以获取网址。有谁可以帮助我?
这是我的代码
<?php
function getTitle($url) {
$data = file_get_contents($url);
$title = preg_match('/<title[^>]*>(.*?)<\/title>/ims', $data, $matches) ? $matches[1] : null;
return $title;
}
echo getTitle('http://example.com');
?>
答案 0 :(得分:1)
您可以使用 preg_split()。
$urls = $_REQUEST['urlArea'];
function getTitle($url) {
$data = file_get_contents($url);
$title = preg_match('/<title[^>]*>(.*?)<\/title>/ims', $data, $matches) ? $matches[1] : null;
return $title;
}
// split by new-line character(\r\n or \r or \n)
$arr_url = preg_split('/\r\n|[\r\n]/', $urls);
foreach($arr_url as $url) {
echo getTitle($url);
}
编辑:为完整代码添加了您的功能
答案 1 :(得分:0)
请尝试此代码。当我们使用函数file_get_contents
获取数据时,我们应该检查该数据的长度。
function get_title($url){
$str = file_get_contents($url);
if(strlen($str)>0){
$str = trim(preg_replace('/\s+/', ' ', $str)); // supports line breaks inside <title>
preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title); // ignore case
return $title[1];
}
}
//For Example:
echo get_title("stackoverflow.com/");
输出结果为:
Stack Overflow - Where Developers Learn, Share, & Build Careers