PHP网页编程之在恣意字符集下正常显示网页的办法
我是根据自己的成长历程来写的,如有不对的还请指正。网页|显示 <LI class=content id=pre_1156744211>凡是情形下,咱们的网页要指定一个编码字符集,如 GB2312、UTF-8、ISO-8859-1 等,如许咱们就能够在网页上显示咱们指定编码的文字了。然而咱们极可能会碰到这类情形,那就是咱们能够但愿在 ISO-8859-1 编码的网页上显示汉字,或在 GB2312 编码的网页上显示韩文等。固然一种处理举措就是咱们不必 ISO-8859-1 或 GB2312 编码,而一切都采取 UTF-8 编码,如许咱们只需在这类编码下,就能够夹杂显示列国文字了,这是如今良多网站采取的办法。而我这里所说的并不是下面这类办法,由于下面这类办法必需要指定字符集为 UTF-8 才可以,一旦用户手工指定为其他字符集,或能够由于某些缘由,谁人字符集设置没起感化,而阅读器又没有准确主动辨认的话,咱们看到的网页仍是乱码,特别是在某些用框架作的网页中,某个框架中的页面假如字符集设置没起感化,在 firefox 中显示乱码并且还没法改动(我是说在不装RightEncode插件的情形下)。
而我这里引见的办法即便是把网页指定为 ISO-8859-1 字符集,也可以准确显示汉字、日文等。道理很复杂,就是把除 ISO-8859-1 编码中前128个字符之外的一切其他的编码都用 NCR(Numeric character reference) 来暗示。好比“汉字”这两个字,假如咱们写成“汉字”这类模式,那末它在恣意字符集下都可以准确显示。依据这个道理,我写了上面这个法式,它可以把现有的网页转化为在恣意字符集下都能显示的网页。你只需求指定源网页的字符集和源网页,点提交按钮,就能够失掉方针网页了。你也能够只转化某些文字,只需求把文字填写到文本框中,并指定这些文字本来的字符集,点提交按钮,就会在页面下面显示编码后的文字了。别的我还编写了 WordPress 的插件,如今我的 Blog 已可以在恣意字符集下都能准确显示了。
转化法式地址:http://test.coolcode.cn/nochaoscode/
下载: nochaoscode.php
<?php
function nochaoscode($encode, $str, $isemail = false) {
$str = iconv($encode, "UTF-16", $str);
for ($i = 0; $i < strlen($str); $i++,$i++) {
$code = ord($str{$i}) * 256 + ord($str{$i + 1});
if ($code < 128 and !$isemail) {
$output .= chr($code);
} else if ($code != 65279) {
$output .= "&#".$code.";";
}
}
return $output;
}
$encode = $_POST['encode'];
if ($encode == '') $encode = 'UTF-8';
if ($_FILES['file']['size'] > 0) {
$data = nochaoscode($encode, file_get_contents($_FILES['file']['tmp_name']));
header ("Content-type: application/octet-stream;");
header ("Content-length: ".strlen($data));
header ("Content-Disposition: attachment; filename=".$_FILES['file']['name']);
echo $data;
} else {
header ("Content-type: text/html; charset=UTF-8");
if ($_POST['email']) {
echo htmlentities(nochaoscode($encode, $_POST['email'], true));
}
else {
echo htmlentities(nochaoscode($encode, $_POST['content']));
}
?>
<form enctype="multipart/form-data" method="POST">
encode: <input type="text" name="encode" value="UTF-8" /><br />
file: <input type="file" name="file" /><br />
<input type="submit" />
</form>
<form method="POST">
encode: <input type="text" name="encode" value="UTF-8" /><br />
content: <textarea name="content"></textarea><br />
<input type="submit" />
</form>
<form method="POST">
encode: <input type="text" name="encode" value="UTF-8" /><br />
email: <input name="email" /><br />
<input type="submit" />
</form>
<?php
}
?>
理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 实践是检验自己会不会的真理。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 当然这种网站的会员费就几十块钱。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
页:
[1]