PHP fsockopen函數介紹和開啓方法

   PHP fsockopen是一箇功能比較強大的函數。下面在這篇文章中我們將會對這個函數做一箇具體的介紹,希望對站長維護服務器有所幫助。

  如果你要使用一些郵件的類,那麼很多要求支持php的fsockopen函數。但是很多主機商爲了服務器安全考慮禁用了php的fsockopen函數。它可以打開網絡的 Socket 鏈接。

  語法: esuce fsockopen(sting hostnme, int pot, int [eno], sting [est], int [timeout]);

  返回值: 資源;

  函數種類: 網絡系統;

  目前這個函數提供兩個 Socket 資料流界面,分別爲 Intenet 用的 AF_INET 及 Unix 用的 AF_UNIX。

  在 Intenet 中,參數 hostnme 及 pot 分別代表網址及端口號。

  在 UNIX 中,參數hostnme 表示到 socket 的路徑,pot 配置爲 0。timeout可省略表示多久沒有連

  上就中斷。該函數返迴文件指針,供文件函數使用,包括 fgets()、fgetss()、fputs()、fclose()

  feof()。參數 eno 及 est 可省略,做錯誤處理使用。該函數使用阻塞模式 (blocking mode) 處理,

  可用 set_socket_blocking() 轉換成無阻塞模式。 fsockopen(主機名稱,端口號碼,錯誤號的接受變量,錯誤提示的接受變量,超時時間)

  主機名稱:就是你需要發送數據的目的地;

  端口號:就是這個目的程序會在哪個端口等着你的數據;

  錯誤號的接受變量:這個是如果建立socket不成功的時候返回的錯誤編號;

  錯誤提示的變量:是錯誤的時候返回的錯誤提示信息;

  超時時間:就是post數據之後如果對方沒有回應信息,等待的最長時間。

  一、Fsockopen函數的開啓方法

  第一步

  找到php.ini文件,用記事本打開,查找 llow_ul_fopen = 看看後面是 off 還on, 如果是on,直接看下一步,如果是off 那就修改成on,需要注意完整的是llow_ul_fopen = on等號的左右有空格。

  llow_ul_fopen = on

  第二步

  繼續在php.ini文件中,查找,查找extension=php_openssl.dll 找到以後大家注意,extension=php_openssl.dll這段代碼前面會有個 ; 號,只要把這個 ; 號刪除,然後保存。

  extension=php_openssl.dll

  第三步

  如果是IIS 就重啓IIS

  如果是pche 就重啓pche

  二、函數pfsockopen()也有相似的功能,只不過後者是一箇“持續&dquo;(pesistent)的fsockopen()函數,它在腳本運行完之後並不立即斷開。

  fsockopen()函數以Socket模擬HTTP協議(POST)

  可以進行類似真實的http操作,可用於採集,羣發論壇發帖等等。

  fsockopen()函數的作用是可以用來打開一箇socket連接,另一箇函數pfsockopen()也有相似的功能,只不過後者是一箇“持續&dquo;(pesistent)的fsockopen()函數,它在腳本運行完之後並不立即斷開。

  fsockopen()函數存在着比較大的安全問題,比如曾經就被黑客用來進行PHPDDOS攻擊,因此很多主機提供商禁用了這個函數。

  那麼如何知道自己的主機提供商有沒有禁用這個函數呢?

  我們可以在任意一箇網站目錄下新建一箇.php文件,在其中輸入如下代碼:

  echo phpinfo();

  ?>

  保存之後再在瀏覽器中訪問該頁面,可看到頁面中呈現的是當前PHP的配置信息,按Ctl+F搜索llow_ul_fopen或disble_functions,可以看到如下圖所示:

  在llow_ul_fopen那一欄中,如果值爲On,並且disble_functions這個禁用函數列表中沒有fsockopen函數時,則表明fsockopen()函數是可以使用的,否則fsockopen()函數可能就被禁用了。

  那如何才能啓用或禁用這個函數呢?

  我們需要找到php.ini這個PHP配置文件,如果需要禁用,則需在其中進行如下修改:

  .將llow_ul_fopen=On修改成llow_ul_fopen=Off

  2.在disble_functions=後添加fsockopen

  如果需要啓用,則只需進行相反操作。

      以上就是PHP fsockopen函數的具體使用方法,供大家參考學習。

      PHP程序建站就選PHP美國主機。