Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法获取“文件”+&引用;标志显示_Php_Special Characters - Fatal编程技术网

Php 无法获取“文件”+&引用;标志显示

Php 无法获取“文件”+&引用;标志显示,php,special-characters,Php,Special Characters,我在mysql数据库中有一个值:“a+”是一本杂志的名称。 我可以在数据库中看到它,但是我无法通过php显示它。 当我获取sql数据时,它会输出 “A” 我尝试了utfencode()utfdecode()htmlentities()。。。无济于事。我没能诊断出这个问题。 如果有必要,我将通过ajax(jquery load()函数)获取这些数据 更新: 结果表明,在通过正则表达式解析数据时,+符号被删除。似乎也找不到解决办法。preg_quote()没有用处。jquery可能将其解释为url编

我在mysql数据库中有一个值:“a+”是一本杂志的名称。 我可以在数据库中看到它,但是我无法通过php显示它。 当我获取sql数据时,它会输出

“A”

我尝试了utfencode()utfdecode()htmlentities()。。。无济于事。我没能诊断出这个问题。 如果有必要,我将通过ajax(jquery load()函数)获取这些数据

更新:


结果表明,在通过正则表达式解析数据时,+符号被删除。似乎也找不到解决办法。preg_quote()没有用处。

jquery可能将其解释为url编码的“+”符号,可以解释为空格。发布一些代码,我相信有人会给你一个完整的答案。

你可以在\之前添加转义字符,看看它是如何工作的。如果不使用

转换字段数据,则当数据声明为以下内容时,
+
字符将被解释为空格:

这是默认的内容类型。使用此内容类型提交的表格必须按以下方式编码:

  • 控件名称和值被转义空格字符替换为“
    +
    ,然后按照[RFC1738]第2.2节所述对保留字符进行转义:非字母数字字符替换为“
    %HH
    ”,一个百分号和两个表示字符ASCII码的十六进制数字。换行符表示为“CR LF”对(即“
    %0D%0A
    ”)
  • 控件名称/值按它们在文档中的显示顺序列出。名称与值之间用“
    =
    ”分隔,名称/值对之间用“
    &
    ”分隔
  • 所以你必须正确地编码它。在JavaScript中,如果要在URI中使用
    +
    字符,请使用
    encodeURIComponent
    函数:

    "http://www.example.com/?q=" + encodeURIComponent("A+")
    

    您是否将其作为一个javascript参数传递而不使用它?

    好吧,因为使其工作的唯一方法是

    echo urlencode("this is the A+ text"); echo urlencode(“这是A+文本”);
    它是有效的,并且似乎不会破坏文本的其余部分,但我不理解这背后的原理。无论如何,感谢所有试图提供帮助的人。

    如果您监视Firebug中的响应数据,那么“+”会通过吗?这将缩小问题的范围。不,在firebug中,+也不会显示出来。我不知道该发布什么代码。基本上,只需在php中执行echo“A+”;在php中,我可以通过php看到+if i urlencode()的提示。但是我不想系统地对人类使用的内容进行URL编码。根据您的建议,我尝试通过在php输出字符串中硬编码直接输出“A+”。问题依然存在。但是,这也无济于事。只有“urlencode()”使+出现!现在,这是一个问题:我不想对人类可读的文本进行URL编码。我迷路了…按照你的建议,我试着直接输出“A+”,通过在php输出字符串中硬编码它。问题依然存在。但是,这也无济于事。只有“urlencode()”使+出现!现在,这是一个问题:我不想对人类可读的文本进行URL编码。我迷路了…哪个PHP输出字符串?在ajax调用中生成字符串的那个?或者直接在一个空的PHP脚本页面上?一个简单的字符串,如:echo“publisher name:a+
    1999年发布”@jonstjohn:我几乎可以保证这就是问题所在,特别是考虑到pixeline的urlencode()回复。你的意思是,我包含“+”符号的冗长文本通过GET请求发回吗?听起来很奇怪。我以为有255个字符的限制。不,我没有通过。它位于获取的html字符串中。