Saya menggunakan fungsi PHP file_get_contents()
untuk mengambil konten URL dan kemudian saya memproses tajuk melalui variabel $http_response_header
.
Sekarang masalahnya adalah bahwa beberapa URL memerlukan beberapa data untuk diposting ke URL (misalnya, halaman login).
Bagaimana aku melakukan itu?
Saya sadar menggunakan stream_context saya mungkin bisa melakukan itu tetapi saya tidak sepenuhnya jelas.
Terima kasih.
php
http
http-post
file-get-contents
Paras Chopra
sumber
sumber
Jawaban:
Mengirim permintaan HTTP POST menggunakan
file_get_contents
tidak sulit, sebenarnya: seperti yang Anda duga, Anda harus menggunakan$context
parameter.Ada contoh yang diberikan dalam manual PHP, di halaman ini: Opsi konteks HTTP (mengutip) :
Pada dasarnya, Anda harus membuat aliran, dengan opsi yang tepat (ada daftar lengkap di halaman itu) , dan menggunakannya sebagai parameter ketiga untuk
file_get_contents
- tidak lebih ;-)Sebagai sidenote: secara umum, untuk mengirim permintaan HTTP POST, kita cenderung menggunakan curl, yang menyediakan banyak pilihan, tetapi stream adalah salah satu hal yang menyenangkan dari PHP yang tidak diketahui oleh siapa pun ... terlalu buruk .. .
sumber
content
tidak harus array PHP: itu harus QueryString (yaitu harus memiliki format ini:param1=value1¶m2=value2¶m3=value3
) ;; yang berarti Anda mungkin harus menggunakanhttp_build_query($_POST)
$postdata = http_build_query($_POST)
.\r\n
jeda baris - lihat: stackoverflow.com/a/2107792/404960Sebagai alternatif, Anda juga bisa menggunakan fopen
sumber
toto=1&tata=2
juga. Saya tidak menggunakanfopen
, namun.sumber
file_get_contents
bukanfopen
+stream_get_contents
. Dan Anda bahkan tidak menutup "file". Lihat jawaban yang diterima oleh @PascalMARTIN.