在PHP中针对注入的脚本文件搜索字符串的最优雅和最有效的方法是什么。
我希望在用户输入字符串&时进行表单搜索点击搜索,搜索数据保存在txt / php文件上,自动创建基于月份和文件的新文件;年份: -201601.php / txt
然后在每个字符串上使用序列密钥将数据保存在安全查询中
然后,如果-201601.php内容的数据超过1000+查询,则旧数据已删除自动
然后如何根据-201601.php上的随机字符串显示 50个字符串
然后在-201601.php中没有 double 字符串或相同的字符串
如果你有我的问题的解决方案,并希望发布答案,请添加一些解释,以便我能理解你为什么/如何做到这一点,以便我不会再来问同样的问题。感谢
我是搜索&创建我希望用我的情节想象力制作的文件。以下是我到目前为止的手动:
<center>
<form action="./cari.php?q=" method="GET">
<input type="text" name="q" value="" placeholder=" Cari .." style="cursor: pointer;width:69%"/>
<input type="submit" value="Search"/>
</form>
</center><?php
if(isset($_GET['q'])) {
$data = ''.$_GET['q']."<br>\n";
$ret = file_put_contents('rcnt.php', htmlspecialchars($data), FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
}
else {
//echo "$ret bytes written to file";
}
}
//else {die('no post data to process');}
?>
我陷入困境,无法找到相关教程&amp;希望找到答案:(
请帮助,我希望了解更多,我使用XAMPP 5.6
答案 0 :(得分:1)
第一步,浏览器将创建的?q = var,您不需要在表单操作上设置它。
<form method="get">
<input type="text" name="q" placeholder="search">
</form>
PHP代码将是:
<?php
if(!empty($_GET["q"]))
{
$file = fopen(date("Ym") . ".txt","a+");
fwrite($file, $_GET["q"] . "\r\n"); //\r\n jump the line
flose($file);
}
?>
如果今天是该月第一天的第一次搜索,该文件将不存在,那么,PHP将创建它,否则,将打开并在其上写入。
希望它可以帮助你。
答案 1 :(得分:1)
我们可以尝试这种方式:
<?php
$theFile = date("Ym") . ".txt";
$myFile = file($theFile);
for($i = 0; $i < 100; $i++){ //deleting the first 100 lines
unset($myFile[$i]);
}
//rewriting the file without the 100st first lines
file_put_contents($theFile, implode($myFile));
?>