如何将Post方法切换为file_get_contents和file_put_contents?

时间:2013-08-08 11:39:04

标签: php

我有一个包含

的文本文件(testfile.txt)
127.0.0.1:80
127.0.0.1:90
127.0.0.1:100 127.0.0.1:230
127.0.0.1:110
127.0.0.1:200
127.0.0.1:201 127.0.0.1:45
127.0.0.1:86
(...)

为了修复诸如127.0.0.1:100 127.0.0.1:230和127.0.0.1:201127.0.0.1:45之类的行,我正在使用此脚本(POST METHOD):

$listValue = "";

    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        if(!empty($_POST['list']))
        $res = preg_match_all("/\d+\.\d+\.\d+\.\d+\:\d+/", $_POST['list'], $match);

        if($res)
        foreach($match[0] as $value)
        $listValue .= $value."\n";

并提交:

echo trim($listValue);

脚本返回:

127.0.0.1:80
127.0.0.1:90
127.0.0.1:100
127.0.0.1:230
127.0.0.1:110
127.0.0.1:200
127.0.0.1:201
127.0.0.1:86
(...)

我需要这个脚本从testfile.txt读取并保存到testfile.txt。 有任何想法吗?干杯

1 个答案:

答案 0 :(得分:1)

这应该做你想要的:

$list = file_get_contents('testfile.txt');
$res = preg_match_all("/\d+\.\d+\.\d+\.\d+\:\d+/", $list, $match);

if($res) {
    foreach($match[0] as $value)
        $listValue .= $value."\n";
    file_put_contents('testfile.txt', trim($listValue));
}

编辑:另外,代替正则表达式,你可以做一个简单的str_replace('',“\ n”,$ list)