共計 1103 個字符,預計需要花費 3 分鐘才能閱讀完成。
fsockopen() 函數的作用是可以用來打開一個 socket 連接,另一個函數 pfsockopen() 也有相似的功能,只不過后者是一個“持續”(persistent) 的 fsockopen() 函數,它在腳本運行完之后并不立即斷開。
一、
第一步
找到 php.ini 文件,用記事本打開,查找 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 這段代碼前面會有個 ; 號,只要把這個 ; 號刪除,然后保存。
extension=php_openssl.dll
第三步
如果是 IIS 就重啟 IIS
如果是 apache 就重啟 apache
二、
fsockopen() 函數以 Socket 模擬 HTTP 協議 (POST)
可以進行類似真實的 http 操作,可用于采集,群發論壇發帖等等。。。
fsockopen() 函數的作用是可以用來打開一個 socket 連接,另一個函數 pfsockopen() 也有相似的功能,只不過后者是一個“持續”(persistent) 的 fsockopen() 函數,它在腳本運行完之后并不立即斷開。
fsockopen() 函數存在著比較大的安全問題,比如曾經就被黑客用來進行 PHPDDOS 攻擊,因此很多主機提供商禁用了這個函數。
那么如何知道自己的主機提供商有沒有禁用這個函數呢?
我們可以在任意一個網站目錄下新建一個.php 文件,在其中輸入如下代碼:
<!–?php
echo phpinfo();
?>
保存之后再在瀏覽器中訪問該頁面,可看到頁面中呈現的是當前 PHP 的配置信息,按 Ctrl+ F 搜索 allow_url_fopen 或 disable_functions,可以看到如下圖所示:
在 allow_url_fopen 那一欄中,如果值為 On,并且 disable_functions 這個禁用函數列表中沒有 fsockopen 函數時,則表明 fsockopen() 函數是可以使用的,否則 fsockopen() 函數可能就被禁用了。
那如何才能啟用或禁用這個函數呢?
我們需要找到 php.ini 這個 PHP 配置文件,如果需要禁用,則需在其中進行如下修改:
1. 將 allow_url_fopen=On 修改成 allow_url_fopen=Off
2. 在 disable_functions= 后添加 fsockopen
如果需要啟用,則只需進行相反操作。