当前位置:Gxlcms > PHP教程 > 使用Smarty模板2x注入变量报错

使用Smarty模板2x注入变量报错

时间:2021-07-01 10:21:17 帮助过:18人阅读

原因:

php5.5以后的preg_replace不再支持e模式修饰符,可以用preg_replace_callback函数替换。

解决办法:

找到文件 Smarty_Compiler.class.php 第270行:

  1. <code><span>/* replace special blocks by "{php}" */</span><span>$source_content</span><span>=</span> preg_replace(<span>$search.</span><span>'e'</span>, <span>"'"</span><span>.</span><span>$this</span><span>-></span>_quote_replace(<span>$this</span><span>-></span>left_delimiter) <span>.</span><span>'php'</span><span>.</span><span>"' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"</span><span>.</span><span>$this</span><span>-></span>_quote_replace(<span>$this</span><span>-></span>right_delimiter)
  2. <span>.</span><span>"'"</span>
  3. , <span>$source_content</span>);</code>

替换为:

  1. <code><span>// 解决:preg_replace(): The /e modifier is deprecated, use preg_replace_callback ins</span><span>$source_content</span><span>=</span> preg_replace_callback(<span>$search</span>, create_function (<span>'$matches'</span>, <span>"return '"</span><span>.</span><span>$this</span><span>-></span>_quote_replace(<span>$this</span><span>-></span>left_delimiter) <span>.</span><span>'php'</span><span>.</span><span>"' . str_repeat(\"\n\", substr_count('\$matches[1]', \"\n\")) .'"</span><span>.</span><span>$this</span><span>-></span>_quote_replace(<span>$this</span><span>-></span>right_delimiter)
  2. <span>.</span><span>"';"</span>)
  3. , <span>$source_content</span>);</code>

转载自:http://www.epooll.com/archives/791/

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了 使用Smarty模板2x注入变量报错,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 人气教程排行