我是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]部分。
答案 0 :(得分:2)
有一些选项可以做你想要的,这完全取决于输入文本的格式:
如果输入文本的格式始终与每行的格式相同,则表示uniqueid将位于您可以使用的substr
http://php.net/manual/en/function.substr.php
如果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);