douyakan8924 2012-04-01 08:03
浏览 97
已采纳

错误:在PHP脚本中“只能通过引用传递变量”

I am having the error "Fatal error: Only variables can be passed by reference" in the following lines of 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); 

The message shows error in the last line. Can any one suggest me the reason?

(Edit): M() is defined as:

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>", "
", $text);
    if ($escape)
        return mysql_escape_string(trimText(html_entity_decode(strip_tags($text))));
    else
        return trimText(html_entity_decode(strip_tags($text)));
}
  • 写回答

1条回答 默认 最新

  • douzhi19900102 2012-04-01 08:20
    关注

    The problem is this line:

    $pf_args =  str_replace("%s, ", "", PLACEHOLDER, 4 - count($_POST['ad']));
    

    The last argument is just for outputting the number of replacements. You have to pass a variable here, not the expression 4 - count($_POST['ad']). Just remove the last argument and it will work.

    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

    http://php.net/manual/en/function.str-replace.php

    If you want to limit the number of replacements, there are implementations of str_replace_once in the comments of str_replace's manual page.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度