file_get_contents和fsockopen
通過socket使用get方式進行程式的讀寫操作,
示例1:
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
{
die('fate');
}
else
{
fwrite($fp, "GET $url HTTP/1.0\r\nHost: $host\r\n\r\n");
$line = '';
while ($line = fread($fp, 2048))
{
$content .= $line;
}
fclose ($fp);
}
使用注意
1、$host前面不要加"http://",因為是$host要解析成IP地址。
2、$url一定要以"/"開頭。
3、如果IP地址下只有一個虛擬主機,那麼只要fsockopen()連線上,其後Host可有可無。
可以通過如下方法訪問一臺伺服器上同IP下的其它虛擬主機的話,這是一個訪問"10.210.132.133"上"yyyy.xxx.com"虛擬主機的例子:
示例2:
$fp = fsockopen ("10.210.132.133", 80, $errno, $errstr, 30);
fwrite($fp, "GET /a.php HTTP/1.0\r\nHost: yyyy.xxx.com\r\n\r\n");
……
通過測試我們還得到使用http/1.0方式返回結果非常快,而http/1.1方式就要慢得多,並沒有是否需要不需要Host的區別,原來只是瞭解http/1.0是非持續連線,http/1.1是持續連線什麼的但不知道為什麼會有這樣的影響。
使用file_get_contents(string filename [, int use_include_path [, resource context]])通過get方式進行程式的讀寫操作,
示例3:
$content = file_get_contents('http://yyyy.xxx.com/a.php?a=abc&d=1234');
這個函式使用的時候要注意:
1、filename寫法是要以“http://”開頭,而fsockopen則不是。
2、返回的結果會去除響應頭。
示例1:
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
{
die('fate');
}
else
{
fwrite($fp, "GET $url HTTP/1.0\r\nHost: $host\r\n\r\n");
$line = '';
while ($line = fread($fp, 2048))
{
$content .= $line;
}
fclose ($fp);
}
使用注意
1、$host前面不要加"http://",因為是$host要解析成IP地址。
2、$url一定要以"/"開頭。
3、如果IP地址下只有一個虛擬主機,那麼只要fsockopen()連線上,其後Host可有可無。
可以通過如下方法訪問一臺伺服器上同IP下的其它虛擬主機的話,這是一個訪問"10.210.132.133"上"yyyy.xxx.com"虛擬主機的例子:
示例2:
$fp = fsockopen ("10.210.132.133", 80, $errno, $errstr, 30);
fwrite($fp, "GET /a.php HTTP/1.0\r\nHost: yyyy.xxx.com\r\n\r\n");
……
通過測試我們還得到使用http/1.0方式返回結果非常快,而http/1.1方式就要慢得多,並沒有是否需要不需要Host的區別,原來只是瞭解http/1.0是非持續連線,http/1.1是持續連線什麼的但不知道為什麼會有這樣的影響。
使用file_get_contents(string filename [, int use_include_path [, resource context]])通過get方式進行程式的讀寫操作,
示例3:
$content = file_get_contents('http://yyyy.xxx.com/a.php?a=abc&d=1234');
這個函式使用的時候要注意:
1、filename寫法是要以“http://”開頭,而fsockopen則不是。
2、返回的結果會去除響應頭。
相關文章
- curl, fsockopen ,file_get_contents
- file_get_contents和fread的效能差別
- OPENSSL問題,使用fsockopen()函式提示錯誤函式
- Discuz!論壇進行環境檢測時提示不支援fsockopen和pfsockopen函式函式
- 一文搞懂 $_POST 和 file_get_contents ("PHP://input") 的區別PHP
- **對比$_POST、$GLOBALS['HTTP_RAW_POST_DATA']和file_get_contents('php://input')HTTPPHP
- file_get_contents傳送post請求
- file_get_contents與curl的比較
- PHP載入大檔案時require和file_get_contents的效能對比PHPUI
- PHP file_get_contents 與 curl 效能比較PHP
- 測評file_get_contents與curl 效率及穩定性
- file_get_contents與curl效率及穩定性問題
- PbootCMS在阿里雲主機上郵件傳送失敗:伺服器已經禁用stream_socket_client和fsockopenboot阿里伺服器client
- [PHP檔案管理器]⑤--file_get_contents檢視檔案PHP
- 解決PHP程序 CPU 100% -- file_get_contents惹的禍PHP
- file_get_contents 得到https型別url失敗的方法HTTP型別
- PbootCMS在阿里雲主機上郵件傳送失敗:伺服器已經禁用stream_socket_client和fsockopen函boot阿里伺服器client
- curl的速度為什麼比file_get_contents快以及具體原因
- PHP-CGI程式CPU100%與file_get_contents函式的關係PHP函式
- ../和./和/的區別
- 路徑中./和../和/
- !=和<>
- #和&
- linux中/bin和/sbin和/usr/bin和/usr/sbinLinux
- redis的安裝和啟動和檢測和停止Redis
- 深度解析 Delegate 和 Notification 和 KVO
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- xftp和xshell,xftp和xshell的下載和安裝FTP
- 找工作學習筆記1------=和==、&和&&、|和||的區別筆記
- workman 和swoole 區別 和異同
- @NotEmpty和@NotBlank和@NotNull小結Null
- 檔案路徑問題( ./ 和 ../ 和 @/ )
- csv和excel讀取和下載Excel
- Cookie 和 Session 關係和區別CookieSession
- 堆和棧的概念和區別
- js中的typeof和instanceof和===JS
- hbase和zookeeper的安裝和部署
- JSF和Struts、Tiles Portlets和TapestryJS