特定の文字列をtxtファイルから削除する必要があります。現在、コードはデータをファイルに直接ポストするために同様の方法で動作します。ただし、同じ方法で入力した同じデータを削除しようとすると、許可されません。現在の状態では、コードは文字列の削除のためにこのように見えます。 Php:テキストファイルから文字列を削除する
は、私たちは、構築済みのソート機能 またはstr_replaceまたは類似のコードのような利用機能を使用することはできません ました。ここ文字列を除去するための現在のコードである:
$blankReplace = "";
$found = false;
$fileData = file($fileInput,FILE_IGNORE_NEW_LINES);
for($i = 0; ($i < count($fileData)) && != $found; $i ++)
{
if($fullNameAndEmail == $fileData[$i])
{
$pos = $i;
$name = $fileData[$i];
$found = true;
}
}
if($found == true)
{
// Exit path. Go to for($j = 0) path
unset($fileData[$pos]);
shuffle($fileData);
}
else
{
//Error Msg
}
$writeToFile = fopen($inputFile,'w+');
for($j = 0;$j<count($fileData);$j++)
{
if(trim($fileData[$j]) != " ")
{
$rewrittenList = trim($fileData[$j])."\n";
fwrite($writeToFile, $rewrittenList);
}
}
コードがエラーを調査時にコードにT_IS_NOT_EQUAL
の誤差を出力します。データはread()から直接データとして取り込まれるので、うまくいくはずです。エラーは現在for($i = 0; ($i < count($fileData)) && != $found; $i ++)
行を指していますが、コード内で同様のオカレンスも参照する可能性があります。
データはフォーマットで入力されている:
Matt Person [email protected]
Matt Person [email protected]
それがすること:
firstname lastname emailaddress
は、私も言及した名前の複数のインスタンスは、私たちが持っていると言う発生した場合に対処できるようにする必要がありますこれに類似したケースでは、1つのインスタンスを削除する必要はありません。
お手数ですが、よろしくお願いいたします。
EDIT:
Example input:
Matthew person [email protected]
John holton [email protected]
Person Name [email protected]
(上記の形式で)、ユーザの意志入力人の名前と、それが人を除去することになります。フォームに彼らに入力を言う:
$fullName = "Matthew person";
$emailAddr = "[email protected]";
The output will edit the data to put the data into a single line again
$fullNameAndEmail = $firstName." ".$lastName." ".$emailAddr;
「マシューの人[email protected]」だから
を削除します。この例のコードの出力、テキストファイルに出力の出力は以下となります。
John holton [email protected]
Person Name [email protected]
編集2:コードはそれで私はあなたがそれをovercomplicatedていると思います現在の状態
<!doctype HTML>
<html>
<meta charset="utf-8">
<head>
<title>Updating the guest book!</title>
</head>
<body>
<?php
$fileInput = "guestBook.txt";
$fileInputInData = file_get_contents($fileInput); // Gets data from file
$testBool = file_exists($fileInput);
$fullName = trim($_POST["fullName"]);
$emailAddr = trim($_POST["emailAddr"]);
$fileSize = filesize($fileInput);
if(!empty($fullName) and !empty($emailAddr))
{
if($testBool == 0)
{
echo "There was an issue with the file. Please have it checked.</br>";
}
else
{
echo "Made it into else path for testBool </br>";
if($fileSize > 0)
{ #code for truth
echo "Made it into filesize check. Filesize: $fileSize </br>";
$fullNameLen = strlen($fullName);
$emailAddrLen = strlen($emailAddr);
$fullNameArr = explode(" ", $fullName);
$firstName = trim($fullNameArr[0]);
$lastName = trim($fullNameArr[1]);
$fullNameToWrite =$firstName." ".$lastName;
$emailAddrCheck=substr_count($emailAddr, "@");
if ($emailAddrCheck == 1)
{
echo "Email address check passed</br>";
#email addr entered right path
$fullNameAndEmail =$fullNameToWrite." ".$emailAddr." has signed in.\n";
$inputFile = "guestBook.txt";
//$pos = strpos($writeToFile, $fullNameAndEmail);
//$writeToFileEx = explode("\n", $fileInputInData);
$blankReplace = "";
$str = $fileInputInData;
$find = $fullNameAndEmail;
$arr=explode("\n", $str);
Foreach($arr as $key => &$line)
{
If($line == $find)
{
Unset($arr[$key]);
shuffle($arr);
}
}
$writeToFile = fopen($inputFile,'w+');
$rewrittenList = trim($arr)."\n";
fwrite($writeToFile, $rewrittenList);
fclose($inputFile);
}
else {
echo "Email address check failed. Invalid email address entered. </br>
Line 55 occured.</br>";
#email addr entered wrong message
}
//asort(array) sorts array low to high (ascending)
//arsort(array) sorts array high to low (descending)
}
else
{
echo "Did not make it into filesize check. Filesize: $fileSize. Line 63 occured </br>";
}
}
}
else if (empty($fullName) or empty($emailAddr))
{
echo "Error! Line 23: One of the inputs was left empty. Line 69 occured </br>";
}
else
{
echo "Error! Line 23: Did not detect any values in either data area,</br>and program
did not go into first error. Line 73 occured </br>";
}
?>
<br>
</body>
</html>
開始します: '= $ found'あなたが言及' for'ループの中で、 '$ found'する必要があります!。現在は構文エラー – dan08
です。入力と出力を表示します。あなたは、関数の入力と期待される出力を除いてすべてを説明しました。 '$ fullNameAndEmail'とは何ですか – Andreas
あなたはstr_replaceを再発明しようとしていますか? https:// 3v4l。org/gpTEg#vhhvm-3185 – Andreas