- 資訊首頁(yè) > 互聯(lián)網(wǎng) > 經(jīng)驗分享 >
- PHP fsockopen函數介紹和開(kāi)啟方法
PHP fsockopen是一個(gè)功能比較強大的函數。下面在這篇文章中我們將會(huì )對這個(gè)函數做一個(gè)具體的介紹,希望對站長(cháng)維護服務(wù)器有所幫助。
如果你要使用一些郵件的類(lèi),那么很多要求支持php的fsockopen函數。但是很多主機商為了服務(wù)器安全考慮禁用了php的fsockopen函數。它可以打開(kāi)網(wǎng)絡(luò )的 Socket 鏈接。
語(yǔ)法: resuce fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);
返回值: 資源;
函數種類(lèi): 網(wǎng)絡(luò )系統;
目前這個(gè)函數提供兩個(gè) Socket 資料流界面,分別為 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。
在 Internet 中,參數 hostname 及 port 分別代表網(wǎng)址及端口號。
在 UNIX 中,參數hostname 表示到 socket 的路徑,port 配置為 0。timeout可省略表示多久沒(méi)有連
上就中斷。該函數返回文件指針,供文件函數使用,包括 fgets()、fgetss()、fputs()、fclose()
feof()。參數 errno 及 errstr 可省略,做錯誤處理使用。該函數使用阻塞模式 (blocking mode) 處理,
可用 set_socket_blocking() 轉換成無(wú)阻塞模式。 fsockopen(主機名稱(chēng),端口號碼,錯誤號的接受變量,錯誤提示的接受變量,超時(shí)時(shí)間)
主機名稱(chēng):就是你需要發(fā)送數據的目的地;
端口號:就是這個(gè)目的程序會(huì )在哪個(gè)端口等著(zhù)你的數據;
錯誤號的接受變量:這個(gè)是如果建立socket不成功的時(shí)候返回的錯誤編號;
錯誤提示的變量:是錯誤的時(shí)候返回的錯誤提示信息;
超時(shí)時(shí)間:就是post數據之后如果對方?jīng)]有回應信息,等待的最長(cháng)時(shí)間。
一、Fsockopen函數的開(kāi)啟方法
第一步
找到php.ini文件,用記事本打開(kāi),查找 allow_url_fopen = 看看后面是 off 還on, 如果是on,直接看下一步,如果是off 那就修改成on,需要注意完整的是allow_url_fopen = on等號的左右有空格。
allow_url_fopen = on
第二步
繼續在php.ini文件中,查找,查找extension=php_openssl.dll 找到以后大家注意,extension=php_openssl.dll這段代碼前面會(huì )有個(gè) ; 號,只要把這個(gè) ; 號刪除,然后保存。
extension=php_openssl.dll
第三步
如果是IIS 就重啟IIS
如果是apache 就重啟apache
二、函數pfsockopen()也有相似的功能,只不過(guò)后者是一個(gè)“持續”(persistent)的fsockopen()函數,它在腳本運行完之后并不立即斷開(kāi)。
fsockopen()函數以Socket模擬HTTP協(xié)議(POST)
可以進(jìn)行類(lèi)似真實(shí)的http操作,可用于采集,群發(fā)論壇發(fā)帖等等。
fsockopen()函數的作用是可以用來(lái)打開(kāi)一個(gè)socket連接,另一個(gè)函數pfsockopen()也有相似的功能,只不過(guò)后者是一個(gè)“持續”(persistent)的fsockopen()函數,它在腳本運行完之后并不立即斷開(kāi)。
fsockopen()函數存在著(zhù)比較大的安全問(wèn)題,比如曾經(jīng)就被黑客用來(lái)進(jìn)行PHPDDOS攻擊,因此很多主機提供商禁用了這個(gè)函數。
那么如何知道自己的主機提供商有沒(méi)有禁用這個(gè)函數呢?
我們可以在任意一個(gè)網(wǎng)站目錄下新建一個(gè).php文件,在其中輸入如下代碼:
echo phpinfo();
?>
保存之后再在瀏覽器中訪(fǎng)問(wèn)該頁(yè)面,可看到頁(yè)面中呈現的是當前PHP的配置信息,按Ctrl F搜索allow_url_fopen或disable_functions,可以看到如下圖所示:
在allow_url_fopen那一欄中,如果值為On,并且disable_functions這個(gè)禁用函數列表中沒(méi)有fsockopen函數時(shí),則表明fsockopen()函數是可以使用的,否則fsockopen()函數可能就被禁用了。
那如何才能啟用或禁用這個(gè)函數呢?
我們需要找到php.ini這個(gè)PHP配置文件,如果需要禁用,則需在其中進(jìn)行如下修改:
1.將allow_url_fopen=On修改成allow_url_fopen=Off
2.在disable_functions=后添加fsockopen
如果需要啟用,則只需進(jìn)行相反操作。
以上就是PHP fsockopen函數的具體使用方法,供大家參考學(xué)習。
來(lái)源鏈接:https://www.idcspy.com/php-fsockopen.html
本站聲明:網(wǎng)站內容來(lái)源于網(wǎng)絡(luò ),如有侵權,請聯(lián)系我們,我們將及時(shí)處理。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站