首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >str_getcsv示例

str_getcsv示例
EN

Stack Overflow用户
提问于 2011-05-30 01:28:50
回答 5查看 32.3K关注 0票数 8

我希望将逗号分隔的值字符串解析为数组。我想试试str_getcsv()的php函数,但我找不到任何关于如何使用它的好例子。

例如,我有一个输入,其中用户提交编程语言(php、js、jquery等)的标签,就像提交问题时stackoverflow中的“tag”输入一样。

如何使用str_getcsv将示例value="php, js, jquery"的输入转换为数组?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-30 01:32:55

诚然,http://us3.php.net/manual/en/function.str-getcsv.php的规范没有包括标准示例,但用户提交的说明很好地涵盖了这一点。如果这是表单输入:

代码语言:javascript
运行
复制
$val = $_POST['value'];
$data = str_getcsv($val);

$data现在是一个具有值的数组。试一试,看看你是否还有其他问题。

票数 8
EN

Stack Overflow用户

发布于 2011-05-30 01:34:01

我认为你也许应该看看explode来完成这个任务。

代码语言:javascript
运行
复制
 $values  = "php, js, jquery";
 $items = explode(",", $values);

 // Would give you an array:
 echo $items[0];  // would be php
 echo $items[1];  // would be js
 echo $items[2];  // would be jquery

这可能比str_getcsv()更有效;

请注意,您需要使用trim()来删除项值之前和之后可能出现的空格。

更新:

我以前没有见过str_getcsv,但在手册页上读一下这句话,会让它看起来是一个值得的候选人:

为什么不使用

()而不是str_getcsv()来解析行?因为explode()不会正确处理字符串中可能包含的部分或转义字符。

票数 9
EN

Stack Overflow用户

发布于 2012-08-03 13:43:07

为了简单和可读性,我通常只使用explode(),只有在满足以下两个条件的情况下才添加str_getcsv():1)主分隔符也用在数据本身中;2)我试图用作主分隔符的标记被另一个不同的字符括起来。

例如,CSV文件的基本解析器:

代码语言:javascript
运行
复制
$filename = $argv[1];
if (empty($filename)) { echo "Input file required\n"; exit; }
$AccountsArray = explode("\n", file_get_contents($filename));

只要$AccountsArray的每个元素没有在数据本身中嵌入",“,这就可以完美地工作,并且简单易懂:

代码语言:javascript
运行
复制
foreach ($AccountsArray as $entry) {
    $acctArr = explode(",", $entry);
}

然而,数据通常会包含分隔符,此时必须有一个封闭的标记(在本例中为a“)。如果是这样,那么我将切换到str_getcsv(),如下所示:

代码语言:javascript
运行
复制
foreach ($AccountsArray as $entry) {
    $acctArr = str_getcsv($entry, ",", "\""); 
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6169235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档