当前位置: 首页 > 知识库问答 >
问题:

警告:输入中出现意外字符:'\'(ASCII=92)状态=1

蒋招
2023-03-14

我收到以下错误消息:

Warning: Unexpected character in input: '\' (ASCII=92) state=1

这是给我带来麻烦的一行代码。

$tag_value = preg_replace('/\{(.*?)\}/e', '$values[\\1]', $tag_value);

我使用的是PHP5.2。9和升级不是一个选项。

正则表达式不是我的专长,我无法独自解决这个问题。任何帮助都将不胜感激。

共有1个答案

艾意蕴
2023-03-14

使用简单的preg\u replace无法实现这一点,因为数组取消引用不是使用/e修饰符完成的。相反,您可以使用preg\u replace\u callback函数:

$tag_value = preg_replace_callback("/\{(.*?)\}/", function($m) use($values){
    return $values[$m[1]];
}, $tag_value);

这在php 5.3中确实有效,但是在5.2中,您可能需要明确定义回调函数:

function replace($m) {
    global $values;
    return $values[$m[1]];
}
$tag_value = preg_replace_callback("/\{(.*?)\}/", "replace", $tag_value);

编辑:你看到的错误正在发生,因为在你的原始代码中,你的替换被字面上视为$值[\1](在取消反斜杠后——在这个字符串中,\1不是放在里面的正确东西括号。

 类似资料:
  • 我集成了yii框架的php代码出现了以下错误。 警告:在C:\AppServ\www\edusec\index中输入“\”(ASCII=92)state=0时出现意外字符。php第15行 分析错误:语法错误,C:\AppServ\www\edusec\index中出现意外的T_字符串。php第15行 代码: 我正在用Appserv 2.6.0(Php 6)在视窗7上工作。

  • 我的客户说他使用我的脚本得到了这个错误: phpheader.php中的第34行就是

  • 我把我的网站从本地搬到了一个主机上,我发生了一些事情。我将这个配置文件包含到我的中(这是我做的第一件事): 但该网站抱怨道: 警告:在/public\u html/\u inc/config中输入“\”(ASCII=92)state=1时出现意外字符。php在线7 分析错误:语法错误,在/public\u html/\u inc/config中出现意外的T\u字符串。php在线7 基本上,第7行是

  • 我有以下代码: 当我尝试在url中加载此内容时: http://xcode.domain.de/add.php?userName=test 我在服务器上遇到此错误: 警告:第15行 /kunden//webseiten/xcode/add.php输入: ''' (ASCII=39)状态=1中的意外字符 分析错误:语法错误,第15行的/kunden/webseiten/xcode/add.php中出

  • 我第一次遇到这个错误,似乎无法调试它。我的代码与此错误有关,如下所示: 我试图改变一些事情,但没有任何效果,我也不知道这个错误代码意味着什么。谁能帮我调试这个问题,非常感谢。 错误:警告:在/home/nodebase/public\u html/WebApp/Backend/UserPortal/Register/CreateAccount中,输入中出现意外字符:“”(ASCII=16)stat

  • }如果您运行该代码,您会发现它工作得很好。那么问题出在哪里?我必须在Oracle NoSQL数据库上执行同样的操作。了解与数据检索相关的任何部分并不重要,因为它们工作得很好,我已经测试过它们。代码非常相似: 我的目标是获得与第一段代码完全相同的结果。根据我的类tweet的属性,由''分隔的值字符串。 但是,这段代码被压缩在一个Jar文件中,并由数据库在记录的所有tweet上运行。我无法看到发生了什