我抓取的网址是 http的。
但想抓取的链接中有https的网址 (我取的是url中的某段)
public function collect_func_zhibo(){ $data = $this->explode_html('',' '); $var = $this->explode_html('','
'); preg_match_all('/
strpos 腾讯 URL的 https://v.qq.com/x/cover/ucr5uujf5ds5d8r/p0022qljz7v.html 中的 p0022qljz7v explode的地方我知道我没写对。但写对好像也无法识别https
万分感谢。。这个问题困扰我几个月了。。希望能得到帮助。。本人才疏学浅,学艺不精 还望赐教。。多谢。。感恩
var htmltext = "asdfjasdajfkasl<a src='https://www.baidu.com/abc.html' ></a>adafdsdf"; //捕获组表达式 var zhengze = /<a[^>\/>]*src=[\'\"]https\:\/\/[^\'\"]+\/([^\'\"\/]+\.(?:html|htm))[\'\"][^>\/>]*(?:>|\/>)/gi; //验证表表达式 var zhengzes = /<a[^>\/>]*src=[\'\"]https\:\/\/[^\'\"]+\/([^\'\"\/]+\.(?:html|htm))[\'\"][^>\/>]*(?:>|\/>)/i; if (zhengzes.test(htmltext)) { var shuchu = htmltext.match(zhengze); var zifu = ""; var ss = ""; console.log(shuchu); for (var i = 0; i < shuchu.length; i++) { //当符合结果只有一个时,并且正则表达式中包含捕获组时 exec与match的执行结果相同【第一部分为匹配字符串】【第二部分为捕获组字符串】 zifu += zhengzes.exec(shuchu[i])[1] + ","; // zifu += shuchu[i].match(zhengzes)[1] + "\r\n"; } console.log(zifu); // return zifu.substring(0, zifu.length - 1); } else { console.log("false"); // return '0'; }
用javascript写的,但是正则是一样的你可以替换一下试试
我这输出结果为 abc.html
$url = 'https://v.qq.com/x/cover/ucr5uujf5ds5d8r/p0022qljz7v.html'; $data = end(explode('/', $url)); list($fileName) = explode('.', $data); echo $fileName;