php获取远程网页源码的程序代码
Jun 02, 2016 am 09:13 AM有时我们需要做一些采集需要下载远程网页源码到本来了,在这里我们整理了一些php获取远程网页源码代码,希望对各位会有所帮助。
php的curl函数
基本例子
<?php // 初始化一个 cURL 对象 $curl = curl_init(); // 设置你需要抓取的URL curl_setopt($curl, CURLOPT_URL, 'http://www.phprm.com'); // 设置header curl_setopt($curl, CURLOPT_HEADER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 运行cURL,请求网页 $data = curl_exec($curl); // 关闭URL请求 curl_close($curl); // 显示获得的数据 var_dump($data); ?>
php fopen函数
<?php print ("<h1 id="HTTP">HTTP</h1>n"); // open a file using http protocol if (!($myFile = fopen("http://www.phprm.com/", "r"))) { print ("file could not be opened"); exit; } while (!feof($myFile)) { // read a line from the file $myLine = fgetss($myFile, 255); print ("$myLine <BR>n"); } // close the file fclose($myFile); print ("<h1 id="FTP">FTP</h1>n"); print ("<HR>n"); // open a file using ftp protocol if (!($myFile = fopen("ftp://ftp.php.net/welcome.msg", "r"))) { print ("file could not be opened"); exit; } while (!feof($myFile)) { // read a line from the file $myLine = fgetss($myFile, 255); print ("$myLine <BR>n"); } // close the file fclose($myFile); print ("<h1 id="Local">Local</h1>n"); print ("<HR>n"); // open a local file if (!($myFile = fopen("data.txt", "r"))) { print ("file could not be opened"); exit; } while (!feof($myFile)) { // read a line from the file $myLine = fgetss($myFile, 255); print ("$myLine <BR>n"); } // close the file fclose($myFile); ?>
file_get_contents函数
<?php file_get_contents('http://www.phprm.com/'); ?>
抓取远程网页源码类
<?php class HTTPRequest { var $_fp; // HTTP socket var $_url; // full URL var $_host; // HTTP host var $_protocol; // protocol (HTTP/HTTPS) var $_uri; // request URI var $_port; // port // scan url function _scan_url() { $req = $this->_url; $pos = strpos($req, '://'); $this->_protocol = strtolower(substr($req, 0, $pos)); $req = substr($req, $pos + 3); $pos = strpos($req, '/'); if ($pos === false) $pos = strlen($req); $host = substr($req, 0, $pos); if (strpos($host, ':') !== false) { list($this->_host, $this->_port) = explode(':', $host); } else { $this->_host = $host; $this->_port = ($this->_protocol == 'https') ? 443 : 80; } $this->_uri = substr($req, $pos); if ($this->_uri == '') $this->_uri = '/'; } // constructor function HTTPRequest($url) { $this->_url = $url; $this->_scan_url(); } // download URL to string function DownloadToString() { $crlf = "rn"; // generate request $req = 'GET ' . $this->_uri . ' HTTP/1.0' . $crlf . 'Host: ' . $this->_host . $crlf . $crlf; // fetch $this->_fp = fsockopen(($this->_protocol == 'https' ? 'ssl://' : '') . $this->_host, $this->_port); fwrite($this->_fp, $req); while (is_resource($this->_fp) && $this->_fp && !feof($this->_fp)) $response.= fread($this->_fp, 1024); fclose($this->_fp); // split header and body $pos = strpos($response, $crlf . $crlf); if ($pos === false) return ($response); $header = substr($response, 0, $pos); $body = substr($response, $pos + 2 * strlen($crlf)); // parse headers $headers = array(); $lines = explode($crlf, $header); foreach ($lines as $line) if (($pos = strpos($line, ':')) !== false) $headers[strtolower(trim(substr($line, 0, $pos))) ] = trim(substr($line, $pos + 1)); // redirection? if (isset($headers['location'])) { $http = new HTTPRequest($headers['location']); return ($http->DownloadToString($http)); } else { return ($body); } } } //使用方法 $r = new HTTPRequest('http://www.phprm.com'); $str = $r->DownloadToString(); ?>

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment déterminer le nombre de boucles foreach en php

Quelle est la différence entre utiliser foreach et iterator pour supprimer des éléments lors de la traversée de Java ArrayList ?

Comment résoudre PHP Avertissement : fopen() : échec d'ouverture du flux : aucun fichier ou répertoire de ce type

Comment résoudre PHP Avertissement : fopen() : l'opération SSL a échoué dans file.php à la ligne X

Comment résoudre l'avertissement PHP : fopen() : échec d'ouverture du flux : autorisation refusée

Qu'est-ce que l'objet Request en PHP ?

Utilisation de la fonction fopen dans Matlab
