仓酷云

标题: PHP网站制作之用PHP完成主动把纯文本转换成Web页面 [打印本页]

作者: 深爱那片海    时间: 2015-2-4 00:00
标题: PHP网站制作之用PHP完成主动把纯文本转换成Web页面
理解动态语言的概念,运做机制,熟悉PHP语法     比来,我的一个老伴侣向我打德律风乞助。他从事记者的职业有多年了,比来取得了从头出书他的良多初期专栏的权力。他但愿把他的作品贴在Web上;然而他的专栏都是以纯文本文件的模式保留的,并且他既没有工夫也不想去为了把它们转换成为Web页面而进修HTML的常识。因为我是他德律风本里独一一个精晓盘算机的人,所以他打德律风给我看我是不是可以帮帮他。
  “让我来处置吧,”我说:“一个小时今后再给我打德律风。”固然了,当他几个小时今后打德律风过去,我已为他筹办好懂得决的办法。这需求用到一点点PHP,而我播种了他没完没了的感激和一箱红酒。
  那末我在这一个小时里做了些甚么呢?这就是本篇文章的内容。我将告知你若何利用PHP来疾速将纯ASCII文本完善地转换成为可读的HTML标志。
  起首让咱们来看一个我伴侣但愿转换的纯文本文件的例子:
  Green for Mars!
  John R. Doe
  The idea of little green men from Mars, long a staple of science fiction, may soon turn out to be less fantasy and more fact.
  Recent samples sent by the latest Mars exploration team indicate a high presence of chlorophyll in the atmosphere. Chlorophyll, you will recall, is what makes plants green. It's quite likely, therefore, that organisms on Mars will have, through continued exposure to the green stuff, developed a greenish tinge on their outer exoskeleton.
  An interview with Dr. Rushel Bunter, the head of ASDA's Mars Colonization Project blah blah...
  What does this mean for you? Well, it means blah blahblah...
  Track follow-ups to this story online at http://www.mars-connect.dom/. To see pictures of the latest samples, log on to http://www.asdamcp.dom/galleries/220/
  相当尺度的文本:它有一个题目、一个签名和良多段的文字。把这篇文档转换成为HTML真正需求做的是利用HTML的分行和分段标志把原文的结构保存在Web页面上。特别的标点符号需求被转换成为对应的HTML符号,超链接需求变得可以点击。
  上面的PHP代码(列表A)就会完成下面一切的义务:
  列表A
  让咱们来看看它是若何任务的:
以下是援用片断:
<?php
// set source file name and path
$source = "toi200686.txt";
// read raw text as array
$raw = file($source) or die("Cannot read file");
// retrieve first and second lines (title and author)
$slug = array_shift($raw);
$byline = array_shift($raw);
// join remaining data into string
$data = join('', $raw);
// replace special characters with HTML entities
// replace line breaks with <br />
$html = nl2br(htmlspecialchars($data));
// replace multiple spaces with single spaces
$html = preg_replace('/ss+/', ' ', $html);
// replace URLs with <a href...> elements
$html = preg_replace('/s(w+://)(S+)/', ' <a href="" target="_blank"></a>', $html);
// start building output page
// add page header
$output =<<< HEADER
<html>
<head>
<style>
.slug {font-size: 15pt; font-weight: bold}
.byline { font-style: italic }
</style>
</head>
<body>
HEADER;
// add page content
$output .= "<div class='slug'>$slug</div>";
$output .= "<div class='byline'>By $byline</div><p />";
$output .= "<div>$html</div>";
// add page footer
$output .=<<< FOOTER
</body>
</html>
FOOTER;
// display in browser
echo $output;
// AND/OR  
// write output to a new .html file
file_put_contents(basename($source, substr($source, strpos($source, '.'))) . ".html", $output) or die("Cannot write file");
?>

  第一步是把纯ASCII文件读取到一个PHP数组里。这经由过程file()函数很轻易就能够完成,这个函数会把文件的每行都转换成为一个用数字索引的数组中的元素。
  然后,题目和作者行(我假定这两个都是文件的前两行)都经由过程array_shift()函数从数组里提掏出来,放到独自的变量里。数组剩下的成员然后被毗连成一个字符串。这个字符串如今就包含了整篇文章的注释。
  文章注释里像“'”、“<”和“>”如许的特别符号经由过程htmlspecialchars()函数被转换成响应的HTML符号。为了保存文章的原始格局,分行和分段经由过程nl2br()函数被转换成HTML的
元素。文章两头多个空格经由过程复杂的字符串交换被紧缩成为一个空格。
  文章注释里的URL用正则表达式来检测,双方是元素。当页面在Web阅读器里显示的时分,它会把URL转换成为可点击的超链接。
  然后用尺度的HTML划定规矩创立输入的HTML页面。文章的题目、作者和注释都用CSS款式划定规矩格局化。虽然这段剧本没有如许做,然而你可以在这个中央自界说终究页面的外不雅,你可以向模板添加图形元素、色彩或其他眩目标内容。
  一旦HTML页面构建完成,它就能够被送到阅读器或用file_put_contents()保留为静态文件。要注重的是,在保留的时分,本来的文件名会被分化,一个新的文件名(叫做filename.html)会为新创立的Web页面创立。你然后就能够把这个Web页面宣布到Web办事器上、保留到光盘上或对它停止进一步编纂。
  注重:在利用这个剧本创立和保留HTML文件到磁盘的时分,你要确保这个剧本对文件保留的目次有写权限。
  正如你看到的,假设你有尺度格局的ASCII纯文本数据文件,你可以相当敏捷用PHP把它转换成为可以使用的Web页面。假如你已有了一个Web网站,并企图把新的Web页面到场出去,那末调试页面熟成器所利用的模板,使之顺应原有Web网站的外不雅是相当轻易的。你本人碰运气!
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与,
作者: 莫相离    时间: 2015-2-4 07:58
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 蒙在股里    时间: 2015-2-9 19:25
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 深爱那片海    时间: 2015-2-12 23:00
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 小妖女    时间: 2015-2-27 09:12
爱上php,他也会爱上你。
作者: 柔情似水    时间: 2015-3-3 23:25
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 变相怪杰    时间: 2015-3-7 11:02
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 金色的骷髅    时间: 2015-3-15 01:06
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 精灵巫婆    时间: 2015-3-21 15:11
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: 分手快乐    时间: 2015-4-12 20:11
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 仓酷云    时间: 2015-4-17 04:36
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 只想知道    时间: 2015-5-5 00:14
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 愤怒的大鸟    时间: 2015-5-7 21:37
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 谁可相欹    时间: 2015-5-9 11:51
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 乐观    时间: 2015-5-10 02:27
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 飘灵儿    时间: 2015-6-8 14:46
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 小魔女    时间: 2015-7-1 05:34
兴趣是最好的老师,百度是最好的词典。
作者: 小女巫    时间: 2015-7-8 05:55
实践是检验自己会不会的真理。
作者: 老尸    时间: 2015-7-10 19:26
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2