输入的如果是url能够自动生成链接,让后会抓取这个链接的title显示。有什么好的方法吗?
用php或js都行。
1 用户输入的URL在前端用jQuery进行简单的URL合法性检查后,异步提交给PHP
2 PHP检测URL是否合法,用Curl进行获取URL的内容
3 PHP把的获取Title或出错信息,返回给前端jQuery.
<?php
//文件编码为UTF-8(无BOM)
error_reporting(E_ALL || E_STRICT);
$url = 'http://q我q.com';
//首先判断用户输入的URL是否合法
if (!filter_var($url, FILTER_VALIDATE_URL)) {
die('你输入的不是一个正常的URL.');
}
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_HEADER => false,
CURLOPT_URL => $url,
//考虑到有些网站是301跳转的.
CURLOPT_FOLLOWLOCATION => true,
//连接的超时时间设置为5秒
CURLOPT_CONNECTTIMEOUT => 5,
//响应超时时间为5秒
CURLOPT_TIMEOUT => 5,
CURLOPT_VERBOSE => false,
CURLOPT_AUTOREFERER => true,
//接收所有的编码
CURLOPT_ENCODING => '',
//返回页面内容
CURLOPT_RETURNTRANSFER => true,
));
$response = curl_exec($ch);
//检测网页的编码,把非UTF-8编码的页面,统一转换为UTF-8处理.
if ('UTF-8' !== ($encoding = mb_detect_encoding($response, array('UTF-8', 'CP936', 'ASCII')))) {
$response = mb_convert_encoding($response, 'UTF-8', $encoding);
}
//匹配一下title
$title = '没有成功获取到标题';
if (preg_match('#<title>(.*)</title>#isU', $response, $match)) {
$title = $match[1];
}
echo $title;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。