2015-10-05 23 views
0

您知道PHP中有一个名为file_get_content的方法,它可以获取所提供url的页面内容吗?有没有相反的方法呢?比如,file_post_content,您可以在其中将数据发布到外部网站?只是要求教育目的。file_get_content的相反方法

+1

PHP的的file_get_contents功能从本地读取数据/远程文件。还有一个名为file_put_contents(http://php.net/file_put_contents)的函数来在本地写文件。远程编写文件是另一回事。 –

+2

请参阅本问答关于使用'curl'发布数据http://stackoverflow.com/questions/2138527/php-curl-http-post-sample-code –

+0

我也会回应cURL。你也可以编写一个这样做的函数。 – Twisty

回答

1

您可以使用不卷曲,但file_get_contents PHP这个例子:

$url = 'URL'; 
$data = array('field1' => 'value', 'field2' => 'value'); 
$options = array(
     'http' => array(
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'method' => 'POST', 
     'content' => http_build_query($data), 
    ) 
); 

$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
var_dump($result); 

查看PHP网站:http://php.net/manual/en/function.file-get-contents.php#102575

0

能写一个:

<?php 
function file_post_content($url, $data = array()){ 
    // Collect URL. Optional Array of DATA ['name' => 'value'] 
    // Return response from server or FALSE 
    if(empty($url)){ 
     return false; 
    } 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    if(count($data)){ 
     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 
    } 
    // receive server response ... 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $svr_out = curl_exec ($ch); 
    curl_close ($ch); 
    return $svr_out; 
} 
?> 
+0

这到底是什么? – jessica

+0

使用cURL,这将发布到提供的URL。如果没有包含数据,它只是做一个POST并返回结果。如果您将数组传递给它,这些数据将被发布到URL中。结果将再次返回。例如,如果你想将一个TimeZone发布到一个API并取回时间,你可以使用如下的函数:'$ result = file_post_content(“http://api.time.org/”,array('q '=>'UTC'));' – Twisty

+0

如果他们有超过1个字段呢? – jessica