×

phpampnot被转义了

phpampnot被转义了(php转义字符不处理)

admin admin 发表于2023-04-07 02:45:09 浏览58 评论0

抢沙发发表评论

本文目录一览:

php文件在浏览器中打开有一部分是代码一部分是画面,这是什么原因呀?

画面是html代码被浏览器解析了。代码是php代码没有被解析,也就是说你的php服务器配置有问题。不知道你用的是什么服务器 apche还是nginx

关于php文本域中 html标签转义的问题,望大家帮忙解决看看

经本人测试,据我的理解,问题的原因应该不是脚本的问题,你用firebug进行观察会发现,当你传送post的时候,其中的html文本域内容已经进行了编码,但这个编码会在你脚本运行之前进行还原,所以,不会影响你的正则脚本运算。

据我的估计,原因在于:你在输入正则表达式的时候,可能不是太正确。以下是我的测试过程:

运行访问你的脚本,在文本域里将你的脚本源代码粘上,再在正则表达输入框里输入:

%input

type(.*)/%si

你查看网页源代码,其输出结果如下:

preArray

(

[0]

=

Array

(

[0]

=

input

type="submit"

name="button"

value="提交"

/

)

[1]

=

Array

(

[0]

=

="submit"

name="button"

value="提交"

)

)

/pre

说明,还是匹配到了html标签。

而第1个匹配项,在浏览器里会显示为一个html按钮,原因在于这是正规的html语句,所以,浏览器会将这个表现出来。

php输出html时转义,该怎么处理

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

语法:

htmlspecialchars(string,flags,character-set,double_encode)

预定义的字符是:

(和号)成为 amp;

" (双引号)成为 quot;

' (单引号)成为 '

(小于)成为 lt;

(大于)成为 gt;

htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符。

语法:

htmlspecialchars_decode(string,flags)

会被解码的 HTML 实体是:

amp; 解码成 (和号)

quot; 解码成 " (双引号)

' 解码成 ' (单引号)

lt; 解码成 (小于)

gt; 解码成 (大于)

php json_encode 后, 汉字被转移了

属于unicode编码

转换自己做个函数就好!

?php

/**

* 将 %u4F19 转换成如 伙 的 HTML Entity 的形式

*

* @param mixed $str

* @access public

* @return void

*/

function convert_entities($str) {

$str = preg_replace_callback('|%u([a-f0-9]{4})|i',

create_function(

'$matches',

'return \'\' . hexdec($matches[1]) . \';\';'

),

$str

);

return $str;

}

/**

* 把 HTML Entity 转换为原始字符

*

* @param mixed $source

* @access public

* @return void

*/

function utf8encode($source) {

$utf8str = '';

$entities = explode('', $source);

$size = count($entities);

for ($i = 0; $i $size; $i++) {

$foo = $entities[$i];

$nonEntity = strstr($foo, ';');

if ($nonEntity !== false) {

$unicode = intval(substr($foo, 0, (strpos($foo, ';') + 1)));

// determine how many chars are needed to reprsent this unicode char

if ($unicode 128) {

$bar = chr($unicode);

}

else if ($unicode = 128 and $unicode 2048) {

$binVal = str_pad(decbin($unicode), 11, '0', STR_PAD_LEFT);

$binPart1 = substr($binVal, 0, 5);

$binPart2 = substr($binVal, 5);

$char1 = chr(192 + bindec($binPart1));

$char2 = chr(128 + bindec($binPart2));

$bar = $char1 . $char2;

}

else if ($unicode = 2048 and $unicode 65536) {

$binVal = str_pad(decbin ($unicode), 16, '0', STR_PAD_LEFT);

$binPart1 = substr($binVal, 0, 4);

$binPart2 = substr($binVal, 4, 6);

$binPart3 = substr($binVal, 10);

$char1 = chr(224 + bindec($binPart1));

$char2 = chr(128 + bindec($binPart2));

$char3 = chr(128 + bindec($binPart3));

$bar = $char1 . $char2 . $char3;

}

else {

$binVal = str_pad(decbin($unicode), 21, '0', STR_PAD_LEFT);

$binPart1 = substr($binVal, 0, 3);

$binPart2 = substr($binVal, 3, 6);

$binPart3 = substr($binVal, 9, 6);

$binPart4 = substr($binVal, 15);

$char1 = chr(240 + bindec($binPart1));

$char2 = chr(128 + bindec($binPart2));

$char3 = chr(128 + bindec($binPart3));

$char4 = chr(128 + bindec($binPart4));

$bar = $char1 . $char2 . $char3 . $char4;

}

if (strlen($nonEntity) 1) {

$nonEntity = substr($nonEntity, 1); // chop the first char (';')

}

else {

$nonEntity = '';

}

$utf8str .= $bar . $nonEntity;

}

else {

$utf8str .= $foo;

}

}

return $utf8str;

}

$str = '\u662f\u56fd\u5185\u6bbf\u5802\u7ea7\u5316\u5986\u5e08,\u8fd9\u6b21...';

$str=str_replace('\\','%',$str);

$str = convert_entities($str);

header('Content-Type:text/html;charset=utf-8');

print utf8encode($str);

文章内容所有符号被转义了怎么办

Html中特殊字符不被转义,可以使用预格式化标签。

pre 是 Preformatted text(预格式化文本) 的缩写。使用此标签可以把代码中的空格和换行直接显示到页面上。

例如HTML代码:

pre t="code" l="html" pre

if (xx 5) {

print "比5大!\n";

}

/pre

浏览器显示效果:

if (xx 5) {

print "比5大!\n";

}

textarea/textarea之间包含有类似的这种转义字符的时候总会被解析,倒是可以把所有的""通过程序替换成"amp;",但是有些本来就是""的也会被转换,这就错了。如何让textarea/textarea之间包含的文本原封不动的显示出来呢?-phpampnot被转义了

总结如下:

解决方法有两种:

第1种:

pre t="code" l="html"body

textarea id='t' rows=20 cols=20/textarea

script

document.getElementById('t').innerText='a';

/script

/body

第2种:

/*将字串转为html格式*/

pre t="code" l="js" public String strToHtml(String s)

{

if (s==null||s.equals("")) return "";

s = s.replaceAll("", "");

s = s.replaceAll("", "");

s = s.replaceAll("", "");

s = s.replaceAll(" ", " ");

// s = s.replaceAll("/n", "br/");

// s = s.replaceAll("'", "'");

return s;

}

/*将html格式转为字串*/

public String strToHtml(String s)

{

if (s==null||s.equals("")) return "";

s = s.replaceAll("","");

s = s.replaceAll("","");

s = s.replaceAll("","");

s = s.replaceAll(" "," ");

//s = s.replaceAll("br/","/n");

//s = s.replaceAll("'","'");

return s;

}

最后一点:jQuery的()方法默认会转义的,这种情况使用.text()就不会转义了。

thinkphp 模型自动转义的html怎么办

自动转议为html是伪静态的一种,主要用于网站seo,如果需要转换为其它后缀名,可在其配置文件中将'url_html_suffix'设置为php或其它

'url_html_suffix'        = 'html',