📜  在 php 中使用 url 发送数据(1)

📅  最后修改于: 2023-12-03 14:51:04.072000             🧑  作者: Mango

在 PHP 中使用 URL 发送数据

介绍

在 PHP 中,可以使用 URL(即统一资源定位符)来发送数据。 URL 是一个标准化的字符串,用于标识互联网上资源的位置和访问的方法。 PHP 中的 URL 可以通过 HTTP 请求,将数据发送到服务器或其他终端设备。本文将讲解如何使用 PHP 发送 URL 数据。

方法
GET 方法

在 PHP 中,我们可以使用 GET 方法通过 URL 发送数据。 GET 方法的 URL 格式为:

http://example.com/path?name1=value1&name2=value2

其中,example.com 是服务器的地址,/path 是请求的路径,name1=value1&name2=value2 是发送的数据,以键值对的形式表示。在 PHP 脚本中,这些数据可以通过超全局变量 $_GET 对象进行访问。

以下是一个示例:

<?php
if(isset($_GET['name'])) {
    echo "Hello, " . $_GET['name'] . "!";
}
?>

运行这段代码之后,通过 URL 访问 http://example.com/path?name=John,就会在浏览器中显示 Hello, John!

值得注意的是,GET 方法有数据长度的限制,通常不能超过 2KB。因此,如果需要发送大量数据,应该使用 POST 方法。

POST 方法

POST 方法可以通过 URL 发送更多的数据。 POST 方法的 URL 格式为:

http://example.com/path

在 PHP 脚本中,可以使用 POST 方式发送更多的数据。代码如下所示:

<?php
if(isset($_POST['name'])) {
    echo "Hello, " . $_POST['name'] . "!";
}
?>

在发送数据时,需要在 HTTP header 中设置 Content-Type 为 application/x-www-form-urlencoded。然后,需要在发送的数据中使用 http_build_query() 函数将数据以字符串的形式发送。这里的数据格式为键值对。以下是一个示例:

<?php
$data = array('name' => 'John', 'age' => 30);
$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('http://example.com/path', false, $context);

echo $result;
?>

以上代码将发送一个 POST 请求,其中的数据为 name=John&age=30,如果服务器正确返回,则可以在浏览器中打印服务器返回的内容。

总结

在 PHP 中,可以使用 URL 发送数据。 GET 方法可以在 URL 中发送少量数据,而 POST 方法可以在 HTTP header 中设置 Content-Type,然后发送更多的数据。这些数据可以在 PHP 脚本中通过 $_GET 或 $_POST 超全局变量进行访问。