Fehler: "Nur Variablen können als Referenz übergeben werden" in PHP Skript
Ich bin mit dem Fehler "Fatal error: Nur Variablen können als Referenz übergeben werden" in folgenden Zeilen von code.
$ag = array(M($forge[2][$i], NULL, TRUE), M($about[0]["text"], "Less", TRUE), M($address[0]["text"], NULL, TRUE), M($phone[0]["text"], NULL, TRUE), M($website[0]["text"], "...", TRUE));
if(CAT)
array_push($ag, M($cat[1], NULL, TRUE));
$pf_args = str_replace("%s, ", "", PLACEHOLDER, 4 - count($_POST['ad']));
file_put_contents("files/" . FILENAME . ".sql", vsprintf($pf_args, $ag), FILE_APPEND);
Diese Meldung zeigt Fehler in der letzten Zeile. Kann irgend jemand mir empfehlen, der Grund?
(Edit): M() ist definiert als:
function M($text, $str = NULL, $escape = FALSE) {
if (!empty($str))
$text = str_replace($str, "", $text);
$text = str_replace("(Edit)", "", $text);
$text = str_replace("More", "", $text);
$text = str_replace("Less", "", $text);
$text = str_replace("<br>", "\n", $text);
if ($escape)
return mysql_escape_string(trimText(html_entity_decode(strip_tags($text))));
else
return trimText(html_entity_decode(strip_tags($text)));
}
- In welche Zeile genau? Und wie ist
M
definiert? - die file_put_contents() ein, und M() funktioniert einfach paar string-Ersetzungen.
- was zeigt M-code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist diese Zeile:
Das Letzte argument ist nur für die Ausgabe der Anzahl der Ersetzungen. Sie müssen übergeben Sie eine variable hier nicht der Ausdruck
4 - count($_POST['ad'])
. Entfernen Sie einfach das Letzte argument-und es wird funktionieren.http://php.net/manual/en/function.str-replace.php
Wenn Sie wollen, beschränken Sie die Anzahl der Ersetzungen, es gibt Implementierungen von
str_replace_once
in die Kommentarestr_replace
's manual page.