0

好的,伙计们,我有一个格式如下的列表:

Entry-no.1[tab]Description[line-break]
Entry-no.2[tab]Description[line-break]
Entry-no.3[tab]Description[line-break]
and so on...

我已经尝试了一切来隔离“条目列”并创建一个逗号分隔的工作表,如下所示:

Entry-no.1,Entry-no.2,Entry-no.3,etc..

这是我能想到的最好的代码,但它不起作用:(。

<?php
$ls = file_get_contents("File.txt");
$newLS = "";
$index = 0;
for($i=0;$i<strlen($ls);$i++) 
{ 
if($ls[$i]=='\t'){
    $index = $i;
}
if($ls[$i]=='\n'){
    $newLS += substr($ls,0,$index); 
}
} 
echo "woot<br>";
echo $newLS;
echo "done";
?>


PS 我无法更改文件的原始布局。

4

1 回答 1

1

这应该可以解决问题。在线文档。

// read file into array
$array = file('File.txt');

// new array to store results
$new_array = array();

// loop through array
foreach ($array as $line) {
    // explode the line on tab. Note double quotes around \t are mandatory
    $line_array = explode("\t", $line);
    // set first element to the new array
    $new_array[] = $line_array[0];
}

// you can either use this array as is or output as comma-separate value as follows:
echo implode(',', $new_array);

总而言之:

  • 将文件读入数组而不是字符串。这会为您处理换行符
  • 在制表符之前获取每行的一部分并放入新数组中。
  • 使用双引号很重要,\t否则它将被视为文字反斜杠和 t。
于 2013-07-01T17:47:44.577 回答