【发布时间】:2021-10-20 04:31:18
【问题描述】:
我想删除包含$_POST['link'] 给出的内容的行
它已经适用于 .csv 文件。此时,.txt-File 的代码没有任何作用。
我的 php 代码
//txt
$txt = file('../textFiles/websites.txt');
$fpTXT = fopen('../textFiles/websites.txt', 'w');
foreach ($txt as $lines) {
if (!str_contains($lines[2], strval($_POST['link']))) {
fwrite($fpTXT, $lines);
}
}
fclose($fpTXT);
用js触发
<!-- Delete-Function -->
<script>
async function deleteRequest(elem) {
$.ajax({
type: 'POST',
url: '/sites/deleting.php',
dataType: 'html',
data: {
'link': elem
}
});
location.reload();
};
</script>
</head>
<!-- Delete Icon -->
<?php $delBtn = "<td><button class='delete' onclick=\"deleteRequest(this.parentNode.parentNode.getElementsByTagName('td')[2].innerText)\"><i class='material-icons'></i></button></td>"; ?>
csv 代码(在 txt 代码上方)
//CSV
$csv = array_map('str_getcsv', file('../textFiles/websites.csv'));
$fpCSV = fopen('../textFiles/websites.csv', 'w');
foreach ($csv as $fields) {
if (!str_contains($fields[2], strval($_POST['link']))) {
fputcsv($fpCSV, $fields);
}
}
fclose($fpCSV);
.txt 文件中的 2 行
【问题讨论】:
-
你有没有调试过
$lines[2]的值,看看有没有$_POST['link']? -
@rickdenhaan 输出只是我要删除的行的第二个字母的 6 倍(文件中的行数)
-
呃,你要删除行的第二个字母吗?也许您最好在问题中包含一个包含该文件中两行的示例,以及一个发布值的实例。
-
不,实际上是特定的行