本期格言

1、做自己最擅长的事情。因为擅长带给你高效和快感。

2、写代码要学会装B。不要老老实实的敲每一个字符串输出和函数。我们要让接手我们代码的学弟学妹们崇拜的追问我们”哥,这个函数和方法在哪定义的啊。小弟(小妹)我找不到啊,求指导“

本期扯淡

1、 我可以很武断的说:凡是做自己不擅长的事一定无法事半功倍。
有时坚持和成功不能成为因果关系。譬如我不适合做歌唱家因为五音不全,在这种情况下我哪怕从现在开始不吃不喝不睡不拉不泡妞不玩dota,天天练嗓子,练100年也不见得有什么成就。同理我无法成为偶像明星,因为我长得不好看,整容的话—-没钱。

2、兴趣!=擅长。人往往无法轻易发现自己的擅长点。要注意的是你的兴趣爱好不一定是你最擅长的地方。譬如我以前对写代码很感兴趣,但是我最擅长的是做项目运营和团队管理。同理,譬如我对苍老师很感兴趣,但是我不见得很擅长去拍岛国电影。

兴趣可以杜撰,但是擅长点需要自己来挖掘。人生经历和挫折是最好的催化剂。当你真正发现自己的擅长点时,那么你的精华人生就要开始了。

我听到一句话,把它改装了,如下:学生时代–游戏人生 ;刚踏入社会–放荡人生;有了家庭–压力人生;人到中年–精华人生;老年—感悟人生;临死前—蛋疼却又舍不得的结局

3、回到php。它最擅长的搞web。说白话点就是做web页面,php并不特别擅长做复杂的oops架构,虽然这些php并不输给其他语言太多。但是说起纯实现一个单web页面,那么几乎php就是最”不羁的放荡者”。

4、如果你用过vb5或者vb6.你一定会发现vb6快速构建一个windows应用单界面程序非常快,而且那个年代拖拉控件没人会说你是“小白”,因为高手也干这个事情。只不过到了web横行的年代,拖拉控件变成了”小白“的代名词。事实上,我个人感觉如果觉得拖拉控件一定是小白,那么肯定

1、你不了解这个行业

2、你不知道软件在我国的生存环境

3、你肯定生活过的不如意。

自从玩了php,我已经习惯任何细节都手输代码了。不过我以前一直有个梦想,梦到微软把php收了,然后做一个不错的IDE出来,虽然我知道这比苍老师来我家做客还要难。

正文部分

一、在页面上显示基本的字符

php 在页面上显示一些字符实在太简单了,前面几章讲过echo 这个函数,我们来试一下吧。

<?php$web_title="另外一个标题";function output_title(){echo "第三个标题";}
?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> //用utf-8是好习惯//以下为显示网站标题的三种简单写法,第三种为常用写法,一般很少在php页面中直接写上echo,原因是这么写太丑,怕被人家当成小白。<title><?php echo "网站的标题"?> - 我的网站</title>  //注意,html只会识别 第一次出现的title标记,后面两个那是白瞎了<title><?php echo $web_title?> - 我的网站</title><title><?php output_title()?> - 我的网站</title></head><body>  //BB</body></html>

一般来说,网站的标题都是可变自定义的,所以需要用函数来做自定义处理。

二、加载一些通用要素

一般网站中总是要加载一些脚本和样式单,假如我们做一个页面就手写很多css和脚本引用,那实在太让人心寒了。如:

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> //用utf-8是好习惯<title><?php output_title()?> - 我的网站</title><script src="js1.js"></script><script src="js2.js"></script>.....<script src="js10.js"></script>//这个很恶</head><body>  //BB</body></html>

所以,一般要把这些公用的元素放在一个公用文件中

<?php$web_title="另外一个标题";function output_title(){echo "第三个标题";}function load_jslink(){include("./js.htm"); //和你运行的网页同目录下要有个这样的js.htm.内容就是上述一堆script引用,"./"代表当前目录建议不要省略}function load_csslink(){include("./css.htm"); //同上}
?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> //用utf-8是好习惯<title><?php output_title()?> - 我的网站</title><?php load_jslink();load_csslink(); ?> //注意代码编写的装B性</head><body>  //BB</body></html>

注意,加载外部文件时:

1、如果是静态文件,那么要用include

2、如果是函数或者php处理函数,用require.

不要随便使用include_once或者require_once,会造成一定程度的性能下降并会让你的程序结构更乱。

其实php中include等函数还能加载网络或者在web目录以外的文件,不过不建议大家使用这个特性,学都不用学,商业项目中根本不会用到。什么?你在用?那说明你的部门经理是早期的”猪刚烈“,正在催着你随便搞定问题后,收了钱拍屁股走人。

三、循环输出

在php中,可以在页面任意位置循环输出你想要的东西、譬如

由于我们还没学到数据库,所以我们手工构建一个数据源。其实我们后面学到数据库后取出的来数据也是这种$news_list

<?php$web_title="另外一个标题";function output_title(){echo "第三个标题";}function output_lastnews() //获取最新新闻  因为我们还没学到数据库的操作,所以先用数组来代替{$news_list=array(); //注意这句话不是必须的$news_list[]=array("news_id"=>1,"news_title"=>"淡淡的友情,淡淡的爱");$news_list[]=array("news_id"=>2,"news_title"=>"看别人相亲一定要淡定");$news_list[]=array("news_id"=>3,"news_title"=>"今天,我是失意的程序员");$news_list[]=array("news_id"=>4,"news_title"=>"每周一文:人与情感");$news_list[]=array("news_id"=>5,"news_title"=>"归属感-何去何从");$news_list[]=array("news_id"=>6,"news_title"=>"失业的程序员22即将更新");return $news_list;
//以上我手工构建了 6条新闻}?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> //用utf-8是好习惯<title><?php output_title()?> - 我的网站</title></head><body>  <dl><dt>最新新闻</dt><?php$get_lastnews=output_lastnews();if($get_lastnews && is_array($get_lastnews) && count($get_lastnews)>0)
//这是一个神一样的判断,因为php是弱类型,复杂的情况下你根本不知道它会返回什么,有做判断的习惯很好很清凉{foreach($get_lastnews as $news) // 开始循环新闻。 记住循环只需用foreach便可{echo "<dd>";echo "<a href='/detail.php?id=".$news["news_id"]."'>".$news["news_title"]."</a>"; //拼接一个基本的新闻链接echo "</dd>";}}?></dl></body></html>

以上有几个知识点:

1、一般正式项目中,数据库取数据出来的形式 就是这种数组格式。循环很简单

2、不要吝啬你的判断,但并不是每做一步就判断一次。尤其是数据新鲜出炉时最好判断一下。

像is_array 和count这样的函数是要背的(求背,基本函数学习的最好办法是当做 英语单词那样先背下来)

3、请大家关注 dl dt dd 这种标记。在网页设计中,dl 和ul 一般搭配使用用于展现列表形式的内容,div 一般是做外层容器的。p、span等是做修饰文字区域,单个独立显示区域块一般也使用div 。

个人很喜欢em 这个标记,干净利落,推荐一下。

 循环的另一种模式:(常用)

大家会看到上述循环输出的方式假如html标记很多很多,那么要写的代码实在太多了。于是我们再改一下模式:

<?php$web_title="另外一个标题";function output_title(){echo "第三个标题";}function output_lastnews() //获取最新新闻{$news_list=array(); //注意这句话不是必须的$news_list[]=array("news_id"=>1,"news_title"=>"淡淡的友情,淡淡的爱");$news_list[]=array("news_id"=>2,"news_title"=>"看别人相亲一定要淡定");$news_list[]=array("news_id"=>3,"news_title"=>"今天,我是失意的程序员");$news_list[]=array("news_id"=>4,"news_title"=>"每周一文:人与情感");$news_list[]=array("news_id"=>5,"news_title"=>"归属感-何去何从");$news_list[]=array("news_id"=>6,"news_title"=>"失业的程序员21即将更新");return $news_list;}?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> //用utf-8是好习惯<title><?php output_title()?> - 我的网站</title></head><body>  <?php $get_lastnews=output_lastnews()?> //注意这句话分开了 独立写了,<?php if($get_lastnews && is_array($get_lastnews) && count($get_lastnews)>0):?> //注意最后是冒号
//这里会发生一个效果,如果$get_lastnews没有数据或者出错,则下面的 dl区域块就消失了<dl><dt>最新新闻</dt><?php foreach($get_lastnews as $news):?> //最后是冒号<dd><a href='/detail.php?id=<?php echo $news["news_id"] ?>'><?php echo $news["news_title"]?></a>;</dd><?php endforeach;?>//对应上面的foreach 注意最后是分号,endforeach连着写</dl><?php endif;?> //这个对应第一个if判断,注意最后是分号。endif要连着写</body></html>

这种展现形式出来后,大家会发现 有点像cms自定义模板的形式了。

是的,php的特性导致他本身就是一个模板解析引擎。在实际项目开发中,根本无需使用第三方的模板解析引擎,如smarty等等,虽然是很优秀的框架,但是做软件买卖中可以使用,如果自己运营的网站或者项目那最好不要使用。因为有熟悉smarty的时间和功夫 不如把php用的熟一点,一样你能用最原始的办法设计出好的页面架构。

四、附加教程

教大家一个最简单的商业项目的页面架构。

http://localhost/index.php?action=newslist
1、<?php require(…这里要加载公用的函数库..)?>
2、<?php include(“top.php”) ?>  //专门建立一个top.php 用于解析网站头部文件

什么叫头部?

就是<html>

<head>……</head> 这里的内容。这里会处理一下公用的元素和自定义显示标题或者加载不同的脚本

 3、这里应该加载要显示的内容模板。

譬如我建立一个 newslist.php 文件(注意:这个文件内容不包含head、body标记,直接是赤裸裸的业务内容展示),大概代码如下:

<body>

<div id=”out”> //最外层的一个div 用于控制页面基本宽度和样式

<?php include($_GET[“action”].”php”) ?> //这里就可以根据不同的参数来加载不同的页面

当然实际运行时你要做一些判断,譬如文件是否存在等等

</div>

//newslist.php 应该直接就是<ul> 或者<div>或者<dl>标记来展现业务数据

//当然在newslist.php 中还能继续require 其他自定义的函数

4、<?php include(“bottom.php”)?> //专门建立一个bottom.php用来 解析网站尾部文件

注意这个文件要包含 </body>标记哦

 

于是任何一个页面访问模式都是 index.php?action=XXXXX

于是你的网站已经初步具备插件模式的样子了。(只是初步,实际当然要复杂的很多很多很多很多)

假如你会使用301重定向或者使用apache的.htaccess文件,那么使用伪静态的页面地址就更完美了。

[开心学php100天]第六天:用php玩转页面(基础篇)相关推荐

  1. [开心学php100天]第五天:string函数(上)

     注意:本文上午已经发布,由于排版问题特修改后重发. 本期格言: 越高级的技术越需要扎实的基本功.而学好基本功的首要条件是能沉住气和静下心. 往往很多程序员太想一口吃一个肥婆而直接略过基础部分去学习高 ...

  2. 全民一起玩python视频_全民一起玩Python之基础篇,视频教程下载

    课程介绍: "全民一玩Python"系列由杨洋博士精心制作,面向所有希望学习Python编程.进而能够在学习和工作中编写办公自动化.网页信息提取.数据分析处理.人工智能应用.娱乐游 ...

  3. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十)定时计数器

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十) 定时计数器 MSP430G2553带有一个16位时/计数器TIMER_A,用来精确定时或计数.并且添加了3路捕捉比较模块,可以在无需CP ...

  4. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十二)AD转换器

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十二)AD转换器 ADC10是MSP430 单片机的片上模数转换器,其转换位数为10比特,该模块内部是一个SAR型的AD内核,可以在片内产生参 ...

  5. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十四)中断系统

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十三)中断系统 中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断的程序继续运行的现象和技术. 中断源(中断分类) ...

  6. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十三)比较器

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十三)比较器 比较器是为精确比较测量而设计 如电池电压监测.产生外部模拟信号.测量电流.电容和电阻,结合其他模块还可以实现精确的A/D转换. ...

  7. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(九)IO口的介绍

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (九) IO口的介绍 MSP430G2553 共提供了16个IO口,P1.0-P1.7:P2.0-P2.7,即可通用IO口也可以时复用功能. 各 ...

  8. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)-----(七)系统时钟的介绍

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (七)系统时钟的介绍 MSP430G2553 系列单片机的时钟系统,包括2-4个时钟源,可以为外设和CPU提供3个系统时钟. 注意:LFX1不支 ...

  9. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) -----(六)基础知识补充

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (六)基础知识补充 常用数据类型 数据类型 字节 数值范围 Char 1 -128~127 Unsigned char 1 0`255 shor ...

最新文章

  1. 某程序员炫耀:因长得太帅被女领导追求,三年就提拔到总监!程序员搞技术没用,健身护肤才是王道!...
  2. 小松卡特彼勒无人驾驶_运输量突破20亿吨,卡特彼勒无人驾驶矿卡迎里程碑时刻...
  3. Android Studio 第五十一期 - 自定义RecycleView Gallery
  4. java动态创建bean的意义_java相关:Spring Boot如何动态创建Bean示例代码
  5. 如何在Django1.6结合Python3.4版本中使用MySql
  6. AI学习笔记--人机对话的四种形态
  7. 查找最接近的元素(信息学奥赛一本通-T1240)
  8. 阿里云服务器创建历史功能介绍 快速创建云服务器
  9. Alpine Linux如何安装软件
  10. HTML5CSS3网页设计仿微信通讯录页
  11. uniapp微信小程序video视频监听播放时间
  12. yml文件读取方式_1
  13. 睡眠伤害计算机硬件吗,电脑高手告诉您,电脑不关机只睡眠到底伤不伤硬盘?...
  14. 冠军联赛:当火焰变成焰火 海水变成泪水
  15. 【美团滑块】猫眼下单、点评
  16. 数据分析笔记:广州市财政收入挖掘预测案例
  17. cocos2d 高德地图_高德地图SDK使用经验
  18. java嫦娥_嫦娥回来了,还有哪些浪漫传说已经实现?
  19. 对接微信公众号出现【invalid ip xxx.xxx.xxx.xxx 】
  20. 如何在win10的windows Defender中添加信任文件,使其免遭误删除的厄运

热门文章

  1. python工程师年薪多少万_Python工程师工资待遇一般是多少
  2. API文档工具knife4j使用详解
  3. linux pcf8563开发文档,linux下的i2c与时钟芯片pcf8563通信
  4. 区块链入门教程(4)--搭建单机四节点FISCO BCOS联盟链
  5. 出现VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti的一种可能
  6. android之manifest
  7. tcl/tk参考——tcl内建命令
  8. VANT3无法使用slot引用外部icont
  9. android开发基础2-基本UI组件(明日科技教程)
  10. .9图片报错Execution failed for task ':app:mergeDebugResources'. Crunching Cruncher scrollbar_thumb.9.p