php自动将url生成链接并提取title的方法:首先用jQuery进行URL合法性检查,接着异步提交给PHP;然后用Curl获取URL的内容;最后用PHP将获取的Title或出错信息,返回给前端jQuery即可。
php怎么实现自动将url生成链接并提取title?
具体问题:
php 自动将url生成链接,然后提取title
输入的如果是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('#
(.*)#isU', $response, $match)) {$title = $match[1];
}
echo $title;
更多相关技术文章,请访问PHP中文网!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!