如何在php中找到保存文件中的http

时间:2017-09-25 11:54:31

标签: php curl

我使用CURL在php中创建了一个程序,我可以在其中获取任何站点的数据并可以在浏览器中显示它。该程序的另一部分是可以使用文件处理将数据保存在文件中,保存此数据后,我可以在保存文件的body标签中找到所有http链接。我的代码显示了浏览器中的所有网站,但我找不到http链接,一些不必要的代码也像这张图片一样发生,虽然我不想让它来。

https://www.screencast.com/t/Nwaz93oU

PHP代码:

<!DOCTYPE html>
<html>
    <?php
        function get_all_links(){
            $html = file_get_contents('http://www.ucertify.com');
            $dom = new DOMDocument();
            @$dom->loadHTML($html);
            $xpath = new DOMXPath($dom);
            $hrefs = $xpath->evaluate("/html/body//a");
            for ($i = 0; $i < $hrefs->length; $i++) {
                $href = $hrefs->item($i);
                $url = $href->getAttribute('href');
                echo $url.'<br />';
            }
        }
        function get_site_data($uc_url){
            $get_uc = curl_init();
            curl_setopt($get_uc,CURLOPT_URL,$uc_url);
            curl_setopt($get_uc,CURLOPT_RETURNTRANSFER,true);
            $output=curl_exec($get_uc);
            curl_close($get_uc);
            $fp=fopen("mohit.txt","w");
            fputs($fp,$output);
            return $output;
        }
    ?>
    <body>
        <div>
            <?php
            $site_content = get_site_data("http://www.ucertify.com");
            echo $site_content;
            ?>
            </div>
            <div >
            <?php
            echo get_all_links("http://www.ucertify.com");
            ?>
        </div>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

get_all_links方法上验证$url变量是否是某些页面中的有效网址可能具有onclick javascript处理程序。为了验证你是否可以使用正则表达式和php的preg_match。您还可以在What is a good regular expression to match a URL?上查看所需的正则表达式,以便验证网址。