下面的脚本在文本文件中显示搜索字符串,我的文本文件包含如下内容:
60,1,1,188,pdgje5566
60,1,1,188,pdgje5565
if(!empty($extTxId)){
$searchfor = $extTxId;
$matches = array();
$handle = @fopen($file, "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $searchfor) !== FALSE)
$matches[] = $buffer;
}
fclose($handle);
}
print_r($matches);
输出为
数组([0] => 60,1,1,188,ppje5566)
但是我想爆炸用逗号(,)分隔并存储到变量中的数据,无论如何都要这样做吗?
感谢。
答案 0 :(得分:4)
我想爆炸用逗号(,)
分隔的数据
使用explode()
。
如果这是一个CSV文件(或其他一些分隔的文件),我建议查看fgetcsv()
。它实际上是fgets()
和explode()
,这似乎是您所需要的。
答案 1 :(得分:2)
由于每个逗号之间都有空格,因此可以修剪每个元素。
// Iterate through each item int the array (you can do $matches[0] if you just want the first)
foreach ($matches as $match)
{
$output_array = array_map('trim',explode(',',$match));
print_r($output_array);
}
输出:
Array
(
[0] => 60
[1] => 1
[2] => 1
[3] => 188
[4] => pdgje5565
)
答案 2 :(得分:0)
尝试
foreach(Array[0] as $element)
{
echo $element;
}
答案 3 :(得分:0)
如果您知道输入的确切结构,可以执行以下操作:
$string = '60, 1, 1, 188, pdgje5565';
// Using trim just to be sure
list($varA, $varB, $varC, $varD, $varE) = explode(', ', trim($string));
这样你会得到如下结果:
$varA = 60;
$varB = 1;
$varC = 1;
$varD = 188;
$varE = 'pdgje5565';
这里的主要优点是你可以获得不错的变量而不是带有抽象索引的数组,但只有你确定你的结构是恒定的才会有好处。