gpt4 book ai didi

PHP - 使用两个参数分割字符串

转载 作者:行者123 更新时间:2023-12-03 22:57:48 25 4
gpt4 key购买 nike

我正在尝试拆分从 PHP 中的 $_GET 接收到的字符串,但我被卡住了,因为它超出了explode() 函数所能处理的范围 - 至少我是这么认为的。

如果我收到的字符串包含引号 (""),我希望进行拆分(按空格)以使引号中的内容保持完整。例如。像 'Foo bar "Bar 2"' 这样的结果将被拆分为 1 --> Foo ; 2 --> 栏; 3 --> 小节 2 。

我已经研究过explode()、preg_split和类似的东西,但我不明白如何按空格分割较大的字符串,同时保持引号中完整的子字符串。

谢谢。

最佳答案

这是 CSV 文件的定义,以空格作为分隔符。使用CSV解析功能str_getcsv .

$str = 'Foo bar "Bar 2"';
$arr = str_getcsv($str, ' ');
print_r($arr);

输出:

Array
(
[0] => Foo
[1] => bar
[2] => Bar 2
)

对于 PHP < 5.3,来自 PHP 手册的注释:

if (!function_exists('str_getcsv')) {
function str_getcsv($input, $delimiter = ",", $enclosure = '"', $escape = "\\") {
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');
fputs($fp, $input);
rewind($fp);

$data = fgetcsv($fp, 1000, $delimiter, $enclosure); // $escape only got added in 5.3.0

fclose($fp);
return $data;
}
}

关于PHP - 使用两个参数分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com