Heim  >  Artikel  >  Backend-Entwicklung  >  php jsonp单引号转义

php jsonp单引号转义

WBOY
WBOYOriginal
2016-08-08 09:33:13911Durchsuche

PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。

php中jsonp输出时一般用下面的格式:

callbackname('json string');

如果中间的json string中含有单引号,这个输出就是有问题的,调用方一般是无法处理的,所以我们要对单引号进行转义。

如果是用json_encode方式生成可以用下面的方式转义:

<span>$ret</span> = json_encode(<span>$result</span>,<span> JSON_HEX_APOS); </span><span>header</span>('Content-Type: text/javascript; charset=utf-8'<span>); </span><span>echo</span> <span>$callback</span> . '(\'' . <span>$ret</span> . '\');';

这里 JSON_HEX_APOS 是php是提供的把单引号换为 \u0027 了。

如果是字符串拼接的,可以用下面的方式:

<span>$jsonData</span> = <span>preg_replace</span>('/\'/', '\u0027', <span>$jsonData</span>);

然后再输出。

以上就介绍了php jsonp单引号转义,包括了jsonp单引号转义方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn