Der folgende PHP-Code zu vergleichen, funktioniert eine Datei zu lesen und den gleichen Inhalt in einer anderen Datei schreiben:PHP-Code lesen und schreibt fein Datei, bis ich ein Teilzeichen
<?php
$input = @fopen("./temp.def", "r");
$output = @fopen("./temp.tpc","w");
if ($input) {
while (!feof($input)) {
$buffer = fgets($input);
fputs($output, $buffer);
}
if (!feof($input)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($input);
fclose($output);
}
Aber wenn ich Code hinzufügen, einige Inhalte zu ersetzen basierend darauf, ob ein Teilstring ein bestimmter Text ist oder nicht, funktioniert er nicht. Hier ist der Code für das:
<?php
$input = @fopen("./temp.def", "r");
$output = @fopen("./temp.tpc","w");
if ($input) {
while (!feof($input)) {
$buffer = fgets($input);
//check to see if it is a `row` line
$isrow = mb_substr($buffer, 0, 5, 'UTF-8');
if ($isrow == "row=:") {
$data = str_ireplace("row=:", "base=:[loc^nb]" . chr(10) . "row=:", $buffer);
else {
$data = $buffer;
}
}
fputs($output, $data);
}
if (!feof($input)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($input);
fclose($output);
}
Das einzige, was im Code geändert ist der zusätzliche Teil, gelb markiert, und der Name der Variablen ändern, markiert in blau ...
'} sonst {' vielleicht ... – AbraCadaver
Sie haben eine fehlplatzierte Klammer. Es gibt keinen zwischen der if-Anweisung und 'else', und darunter ist eine geschweifte Klammer. – aynber
Ich bin hier nicht possitiv, aber ist 'str_ireplace()' Multi-Byte-Zeichensatz bewusst? – RiggsFolly