ホームページ >バックエンド開発 >PHPチュートリアル >PHP の fsockopen 関数と pfsockopen 関数がホストプロバイダーによって無効にされる問題の解決策、fsockopen function_PHP チュートリアル
fsockopen および pfsockopen 関数にはセキュリティ上のリスクがある可能性がありますが、それを検証する方法はありません。理由が何であれ、これら 2 つの関数はいずれにせよ無効になっているとのことです。どのように解決すればよいでしょうか。編集者がまとめた方法ですので、学生の方の参考になれば幸いです。
解決策は次のとおりです:
1. 代わりに stream_socket_client() を使用します
サーバーが fsockopen と pfsockopen を同時に無効にしている場合は、代わりに stream_socket_client() などの他の関数を使用してください。注: stream_socket_client() と fsockopen() のパラメータは異なります。
具体的な操作:
プログラム内で文字列 fsockopen( を検索し、 stream_socket_client( に置き換えます。次に、元の fsockopen 関数のポート パラメーター "80" を削除し、それを $host に追加します。
例は次のとおりです:
変更前:
または
変更後:
または
2.書き換え方法
PHP バージョンが 5.0 未満で、fsockopen が無効になっており、stream_socket_client() がない場合はどうすればよいですか? fsockopen の関数を実装する関数を自分で記述します。参照コード:
1. まず、fsockopen 関数を使用するコード セグメントを見つけて、その先頭に上記のコードを追加し、コード セグメント内で文字列 fsockopen( を検索し、それを b_fsockopen( .
) に置き換えます。2. fsockopen 関数はファイル ポインタを返すため、file 関数で操作できますが、b_fsockopen 関数はファイル ポインタを返すことができません。fread( をsocket_read() に置き換える必要があります。 、fwrite(をsocket_write(とsocket_closeに置き換えます(fclose(を置き換えます。
)上記の方法のうち、私は問題を解決するために、代わりに stream_socket_client() を使用しました。2 番目の方法は試しませんでした。
Wordpress は解析に PHP を使用する Web ページ プログラムです。PHP が依存する機能は PHP でサポートされている必要があります。PHP の設定を変更したい場合は、PHP が存在するディレクトリで php.ini を見つけて変更してください。 。
http://www.bkjia.com/PHPjc/840756.html
。