📜  php 将字符串转换为 url - PHP (1)

📅  最后修改于: 2023-12-03 15:33:37.512000             🧑  作者: Mango

PHP字符串转换为URL

介绍

在Web开发中,将字符串转换为URL是一个非常常见的需求。PHP提供了多种方式来执行此操作,包括使用函数和类等。

函数
urlencode

urlencode函数可将字符串编码为URL安全的格式,通常用于将GET请求参数编码。

<?php
$str = 'Hello, World!';
$url = urlencode($str);
echo $url; // 输出:Hello%2C+World%21
?>
rawurlencode

urlencode类似,rawurlencode函数也可将字符串编码为URL安全的格式。不同之处在于,rawurlencode函数会将空格编码为%20而不是+

<?php
$str = 'Hello, World!';
$url = rawurlencode($str);
echo $url; // 输出:Hello%2C%20World%21
?>
urldecode

urldecode函数可将已编码的URL字符串解码为原始的字符串。

<?php
$str = 'Hello%2C+World%21';
$url = urldecode($str);
echo $url; // 输出:Hello, World!
?>
rawurldecode

urldecode类似,rawurldecode函数也可将已编码的URL字符串解码为原始的字符串。不同之处在于,rawurldecode函数会将%20解码为空格而不是+

<?php
$str = 'Hello%2C%20World%21';
$url = rawurldecode($str);
echo $url; // 输出:Hello, World!
?>
GuzzleHttp

GuzzleHttp是一个流行的PHP HTTP客户端库,其中包含多个功能强大的URL工具。

Query String

Query String类可用于生成和解析查询字符串,通常用于将GET请求参数编码。

<?php
use GuzzleHttp\Query;
$query = new Query(['foo' => 'bar']);
$url = 'http://example.com?' . $query;
echo $url; // 输出:http://example.com?foo=bar
?>

Uri

Uri类可用于解析和构建URL,包括将URL的各个部分提取为字符串。

<?php
use GuzzleHttp\Psr7\Uri;
$uri = new Uri('http://username:password@example.com:8080/path?foo=bar#baz');
echo $uri->getScheme(); // 输出:http
echo $uri->getUserInfo(); // 输出:username:password
echo $uri->getHost(); // 输出:example.com
echo $uri->getPort(); // 输出:8080
echo $uri->getPath(); // 输出:/path
echo $uri->getQuery(); // 输出:foo=bar
echo $uri->getFragment(); // 输出:baz
?>
结论

以上介绍了在PHP中将字符串转换为URL的几种常见方法。您可以根据自己的需求选择最适合您的方法。