>  Q&A  >  본문

php - 这个问题困扰很久 strpos 遇到https

我抓取的网址是 http的。
但想抓取的链接中有https的网址 (我取的是url中的某段)

public function collect_func_zhibo(){
        $data = $this->explode_html('<title>','</title>');
        $var = $this->explode_html('<p class="from-site">','<p class="zhanbao">');
        preg_match_all('/<p class=\"v-full\">.*?<a href=\"(.*?)\".*?>(.*?)<\/a>/is', $var,$t);
        foreach($t[1] as $key=>$var){
        if(strpos($t[1][$key],'qq.com')>1){
                $typess = 'qq';
                $arrss = explode("vid=",$t[1][$key]);
                $codess = $arrss[1];
            }else if。。。。。。。。。。。。。。。。
strpos 腾讯 URL的 https://v.qq.com/x/cover/ucr5uujf5ds5d8r/p0022qljz7v.html 中的
p0022qljz7v  

explode的地方我知道我没写对。但写对好像也无法识别https

万分感谢。。这个问题困扰我几个月了。。希望能得到帮助。。本人才疏学浅,学艺不精 还望赐教。。多谢。。感恩

迷茫迷茫2767일 전1040

모든 응답(2)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-11 09:08:41

    $url = 'https://v.qq.com/x/cover/ucr5uujf5ds5d8r/p0022qljz7v.html';
    $data = end(explode('/', $url));
    list($fileName) = explode('.', $data);
    echo $fileName;

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-11 09:08:41

    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

    회신하다
    0
  • 취소회신하다