php:如何在文件中剪切和粘贴行

时间:2013-11-08 04:58:38

标签: php csv

我想搜索文件并确保每一行都不以非数字字符或空格开头。如果是,我想删除行并将其附加到上一行(因为它实际上是文件处理错误...)

输入:

29034985
491017
 Contact us at info@
19403935

输出:

29034985
491017 Contact us at info@
19403935

我的代码执行此操作:

while (($data = fgetcsv('/tmp/file.tsv', 1000, "\t")) !== FALSE) {
    if (is_numeric($data[0])){}
    else
      # do the processing here!

有关如何执行此操作的任何提示? php是否具有剪切/粘贴功能?

2 个答案:

答案 0 :(得分:1)

获取所有内容并使用preg_replace替换

$data = file_get_contents('/tmp/file.tsv');
$data = preg_replace('#\n([a-zA-z].+)\n#', ' $1\n', $data);

# Write the data to a new file or to the same file

答案 1 :(得分:0)

您需要做的是 -

  1. 阅读文件
  2. 流程数据
  3. 回写文件
  4. 试试这个......

    $counter = 0;
    $csv_data = array();
    while (($data = fgetcsv('/tmp/file.tsv', 1000, "\t")) !== FALSE) {
        if (is_numeric($data[0])) {
            $csv_data[$counter] = $data[0];
            $counter++;
        } else {
            $csv_data[$counter] .= ' '. $data[0];
        }
    }
    
    $fp = fopen('/tmp/file.tsv', 'w');
    foreach ($csv_data as $fields) {
        fputcsv($fp, $fields);
    }
    fclose($fp);