[英]PHP - Splitting a string with two parameters
我正在嘗試拆分從 PHP 中的 $_GET 接收到的字符串,但我被卡住了,因為它不僅僅是 explode() function 可以處理 - 或者我認為。
如果我收到的字符串包含引號(“”),我希望拆分(按空格)以保持引號中的內容完整。 例如,像 'Foo bar "Bar 2"' 這樣的結果將被拆分為 1 --> Foo; 2 --> 酒吧; 3 --> 小節 2。
我已經查看了explode()、preg_split 和類似的東西,但我不明白如何按空格分割較大的字符串,同時保留引號中的完整子字符串。
謝謝。
這就是以空格為分隔符的 CSV 文件的定義。 使用 CSV 解析 function str_getcsv
。
$str = 'Foo bar "Bar 2"';
$arr = str_getcsv($str, ' ');
print_r($arr);
Output:
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.