js + php 处理 永远的敌人 特殊符号 1 在网页上的显示问题
php
sno
处理
敌人
显示
特殊符号
网页
问题
php传给js,然后js将数据显示在网页上,如果存在特殊字符如:' 半角单引号, 半角双引号,或者和html实体符号相关的 amp; 就会出现各种显示上的问题 php部分先将这些特殊的字符转义 ?phpfunction arrayRecursive($array){ foreach ($array as $key = $value)
php传值给js,然后js将数据显示在网页上,如果存在特殊字符如:' 半角单引号," 半角双引号,或者和html实体符号相关的 & 就会出现各种显示上的问题
php部分先将这些特殊的字符转义
<?php function arrayRecursive(&$array){ foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key]);//如果是数组就进行递归操作 } else { if(is_string($value)){ $temp1= addslashes($value); $array[$key]= urlencode($temp1);//如果是字符串就urlencode }else{ $array[$key] = $value; } } } } function JSON($result) { $array=$result; arrayRecursive($array);//先将类型为字符串的数据进行 urlencode $json = json_encode($array);//再将数组转成JSON return urldecode($json);//最后将JSON字符串进行urldecode } $data = '"+123+'."'+&+"+<span class='\"new\"'>+&123"; // $data = '<script>var a=1;</script>'; $arr_data = Array( 'data' => Array( '1'=>$data, '2'=>$data, '3'=> Array( '123'=>'123', '123'=>'123', '123'=>'123' ) ) ); function arrayRecursive2(&$array){ $search = array ( "'&'i",//转换and符号 "'\"'i",//转换半角双引号 "'\''i",//转换半角单引号 "''i"//转换大于号 ); $replace = array ( "&", """, "'", "<", ">" ); foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive2($array[$key]);//如果是数组就进行递归操作 } else { if(is_string($value)){ $array[$key] = preg_replace($search, $replace, $value); }else{ $array[$key] = $value; } } } } function replace_html_entity($result){ $origin = $result; arrayRecursive2($origin); return $origin; } $encode_array = replace_html_entity($arr_data); echo JSON($encode_array); ?></span>
登录后复制
接着是js接受和html显示,以及div,span,input,textarea等相互转换显示的时候的问题:
<meta http-equiv="Content-Type" content="text/html" charset="utf-8"> <title>无标题文档</title> <div id="J_div1"></div> <span id="J_span1"></span> <input type="text" id="J_input" value="" autocomplete="off" name="J_input"> <textarea cols="60" rows="4" id="J_textarea" value="" autocomplete="off" name="J_textarea"></textarea> <input type="hidden" id="J_hidden" value="" name="J_hidden"> <div id="J_div3"></div> <span id="J_span3"></span> <input type="text" id="J_input2" value="" autocomplete="off" name="J_input2"> <textarea cols="60" rows="4" id="J_textarea2" value="" autocomplete="off" name="J_textarea2"></textarea> <input type="hidden" id="J_hidden2" value="" name="J_hidden2"> <script type="text/javascript" src="jquery-1.8.3.min.js"></script> <script type="text/javascript"> function change_to_html_entity(string){ string=string.replace(/&/g,"&"); string=string.replace(/"/g,"""); string=string.replace(/'/g,"'"); string=string.replace(/,"<"); string=string.replace(/>/g,">"); return string; } function change_to_origin(string){ string=string.replace(/"/g,'"'); string=string.replace(/'/g,"'"); string=string.replace(/</g,"<"); string=string.replace(/>/g,">"); string=string.replace(/&/g,"&"); return string; } var string1,string2; var div_tpl = '<div id="J_div2">{word}'; var span_tpl = '<span id="J_span2">{word}'; $.ajax({ type: "POST", url: "getdata3.php", dataType:"JSON", success:function(data){ string1 = data.data[1]; string2 = change_to_origin(string1); $('#J_div1').html(string1); $('#J_span1').html(string1); $('#J_input').val(string2); $('#J_textarea').val(string2); $('#J_hidden').val(string2); $('body').append(div_tpl.replace('{word}',string1)); $('body').append(span_tpl.replace('{word}',string1)); $('#J_div3').text($('#J_hidden').val()); $('#J_span3').text($('#J_hidden').val()); $('#J_input2').val($('#J_div3').text()); $('#J_textarea2').val($('#J_span3').text()); $('#J_hidden2').val($('#J_span3').text()); } }); </script>
登录后复制
至于从这些div,span,input,textarea中取出,通过js传给php时候的问题,在后一篇文章中。。。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
1 个月前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
1 个月前
By DDD
R.E.P.O.最佳图形设置
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu
