PHP选择并保存文本模板

时间:2014-11-15 22:59:17

标签: php html

我是php / html的新手,我甚至不知道PHP是否具有这样的能力。 我想要做的是从输入中选择一些文本并将其保存到txt文件。 我有一个从中获取所有文本并保存到.txt文件。但是有很多不必要的文本,它使.txt文件变大,难以读取。 这就是我经常粘贴的文字

# userid name                uniqueid            connected ping loss state
#    122 "bryerzavala"       [U:1:167845174]     03:25      152    0 active
#    118 "zhabka"            [U:1:12080791]      05:41      109    0 active

并且我需要的部分只是[U:1:167845174]所以有一种方法可以让一个不需要的文本被丢弃,文件只保存[U:X:XXXXXXXXX]部分。

2 个答案:

答案 0 :(得分:2)

有一些选项可以做你想要的,这完全取决于输入文本的格式:

  1. 如果输入文本的格式始终与每行的格式相同,则表示uniqueid将位于您可以使用的substr http://php.net/manual/en/function.substr.php

  2. 如果uniqueid的位置在每一行都有所不同,您可以使用正则表达式来提取您要查找的文本行的一部分,在这种情况下,您可以使用preg_match http://php.net/manual/en/function.preg-match.php

答案 1 :(得分:0)

这是一个简单的方法。可能你会喜欢它

我将使用您提供的file.txt示例来模拟输入数据。

<强> old.txt

# userid name                uniqueid            connected ping loss state
#    122 "bryerzavala"       [U:1:167845174]     03:25      152    0 active
#    118 "zhabka"            [U:1:12080791]      05:41      109    0 active

<强> process.php

<?php
$file = file_get_contents('./test.txt', true);

// var_dump($file);//for debug
preg_match_all('/\[U:\d:\d+\]/',
    $file,
    $out, PREG_PATTERN_ORDER);

var_dump($out); //for debug


//save data in your file 
$fp = fopen("incomming.txt", "w");

foreach ($out[0] as $key => $data) {
    fwrite($fp, $data.PHP_EOL);
}
//close file
fclose($fp);


echo '<hr/>';
$lines = file('incomming.txt');
var_dump($lines);