使用php从html表单中搜索/替换文件中的文本

时间:2014-05-24 20:46:33

标签: php

首先,我没有编程经验。我正在学习。

尝试这样做:我正在尝试使用从html表单提交的新IP地址更新文件,以允许访问我的代理(squid)。它应该使用旧IP地址(搜索和替换)更新squid配置文件。

问题:由于某种原因,它找不到旧的IP地址并将其替换为新的IP地址。

我已经用echo进行了一些调试,一切似乎都很好,直到应该进行实际的替换操作。我认为它与数据类型有关。也许它将iplist.txt文件中的IP地址作为一个数组加载到那个思路中?

我要更新的squid.conf部分看起来像这样:

#               acl fileupload req_mime_type -i ^multipart/form-data$
#               acl javascript rep_mime_type -i ^application/x-javascript$
#
#Default:
acl allowip src 192.168.1.10 #notes on who this is
#
#
# Recommended minimum configuration:
#

,iplist.txt文件如下所示:

192.168.1.8
192.168.1.9
192.168.1.10

我的代码:

<html>


The IP address you entered is <?php echo $_POST["IPaddress"]?>
<?php
$newip = $_POST["IPaddress"];  // new IP address from the form

$file =  "/home/kloos/iplist.txt";
$data = file($file);
$oldip = $data[count($data)-1]; //find the last IP address used from iplist file
?>

<br>
The old ip address was <?php echo $oldip;?>

<?php

$squidproxy = "/home/kloos/testfile.txt";
$file_contents = file_get_contents($squidproxy); //get contents of the squid.conf file
$file_contents = str_replace($oldip,$newip,$file_contents); //replace old ip address with the one submitted
file_put_contents($squidproxy,$file_contents); //put the contents back into the file

file_put_contents("/home/kloos/iplist.txt", $newip, FILE_APPEND); //put this new ip address into the iplist file
file_put_contents("/home/kloos/iplist.txt","\n", FILE_APPEND); //put a newline  character to make sure next ip address is going ot be on the last line of the  iplist file

?>


</html>

你能帮助我解决我做错的事吗?我一直在努力解决这个问题,试图自己解决这个问题大约一个星期了。我需要一些帮助。感谢。

0 个答案:

没有答案