php怎么做网站?如何用PHP开发一个完整的网站

 更新时间:2017年7月6日 23:50  点击:2170
本文详细介绍了如何用PHP开发一个完整的网站的步骤,有兴趣的同学可以参考一下。

1、PHPer应具备的知识
(1)PHP知识:
 

   熟练掌握基础函数,PHP语句(条件、循环),数组(排序、读取),函数(内部 构造),运算(数学 逻辑),面向对象(继承 接口 封装 多态静态属性)等。
    了解Cookie或者Session一种机制
    了解一种模板操作机制和使用
    
    手头收藏一些好的常用类或方法,能提高我们的开发的速度。如:分页、上传、字符过滤、数据库操作、生成HTML、文件操作等。

(2)HTML知识
(3)JavaScript事件处理
(4)数据库知识:SQL语句“增删改查” 会使用一种SQL工具

-----------------------------------------------------------------------------------------------

2、PHP开发的一般流程
如何用PHP开发一个完整的网站

(1)尽量完整的需求方案,具体到功能上:
(2)建模结构UML
(3)建立数据库:
      1、建立的表名、字段名要与他的功能有关系。
      2、根据结构建立数据库表,原则是不定项内容一定要分表。
      3、字段类型要考虑内容是否够用就够就好,选择适合的类型INT Varchar Date

(4)设计HTML文件和脚本的实现
       根据模和数据库来设计页面是个很科学的方法,当然有的时候有人喜欢根据模型设计页面,数据库基于页面设计,都是可以的。
       设计页面时要考虑到每个细节,包括提示消息页面,错误页面。
(5)PHP代码的书写
1、先建立底层结构和文件夹(如果是大型的网站同样设计一个文件UMML)
2、基础功能分类关联,以便今后代码引用。
3、代码的书写,注意简洁性和函数的使用,内部函数能实现的尽量使用内部函数。
4、在部分关键位置加以代码注释。
(6)程序的测试和修正
1、对于发现的BUG不能就解决BUG而解决,要处于完整程序考虑。避免收之东隅收之桑榆。
2、对于解决过的BUG已经要详细记录,以便日后更新。

-------------------------------------------------------------------------------------------------

3、多人开发应该注意什么
使用版本服务器:CVS、SVN...
功能:
1、单个文件历史版本的记录和恢复
2、文件的锁定和更新
3、单个或多个文件程序之间的沟通
4、保护程序的安全性不受单个程序的误操作而丢失

小编分享的这篇文章介绍了ThinkPHP中ajax使用实例代码,不知道如何使用ajax的同学可以参考一下本文。

 一、jquery实现方法:

 代码如下 复制代码

MessageAction.class.php页面代码如下:

<?php

class MessageAction extends Action{

 function index(){

  $this->display(); 

 }

 function add(){

  //ajaxReturn(数据,'提示信息',状态) 

  $m=M('message');

  if($m->add($_GET)){

   $this->ajaxReturn($_GET,'添加信息成功',1);

  }else{

   $this->ajaxReturn(0,'添加信息失败',0); 

  }

 }

}

?>

模板index.html代码如下:

 代码如下 复制代码

<html>

<head>

<script type="text/javascript" src="__PUBLIC__/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript">

 $(function(){

  $('input:button').click(function(){

   var $title=$('input[name="title"]').val();

   var $message=$('input[name="message"]').val();

   $mess=$('#mess');

   $.getJSON('__URL__/add',{title:$title,message:$message},function(json){

    //alert(json);return false;

    if(json.status==1){

     $mess.slideDown(3000,function(){

      $mess.css('display','block'); 

     }).html('标题为'+json.data.title+'信息为'+json.data.message); 

    }else{

     $mess.slideDown(3000,function(){

      $mess.css('display','block'); 

     }).html('信息添加失败,请检查'); 

    }  

   });

  }) 

 })

</script>

</head>

<body>

<div style="display:none; color:red;" id="mess"></div>

<form action="" method="get">

 标题:<input type="text" name="title" /><br />

 信息:<input type="text" name="message" /><br />

  <input type="button" value="提交" />

</form>

</body>

</html>

二、ThinkPHP实现方法:

MessageAction.class.php页面代码如下:

 代码如下 复制代码

<?php

class MessageAction extends Action{

 function index(){

  $this->display(); 

 }

 function addtwo(){

  $m=M('message');

  if($vo=$m->create()){

   if($m->add()){

    $this->ajaxReturn($vo,'添加成功',1); 

   }else{

    $this->ajaxReturn(0,'添加失败',0); 

   } 

  }else{

   $this->error($m->getError()); 

  }

 }

}

?>

模板index.html代码如下:

 代码如下 复制代码

<html>

<head>

<script type="text/javascript" src="__PUBLIC__/Js/Base.js"></script>

<script type="text/javascript" src="__PUBLIC__/Js/prototype.js"></script>

<script type="text/javascript" src="__PUBLIC__/Js/mootools.js"></script>

<script type="text/javascript" src="__PUBLIC__/Js/ThinkAjax.js"></script>

<script type="text/javascript">

 function add(){

  //ThinkAjax.sendForm(表单ID,URL,回调函数,信息显示的地方);

  ThinkAjax.sendForm('frm','__URL__/addtwo',wc); 

 }

 function wc(data,status){

  if(status!=1){

   alert('发送失败');

  }else{

   $('list').innerHTML+='标题'+data.title+',信息'+data.message; 

  } 

 }

</script>

</head>

<body>

<div id="list"></div>

<form action="" method="POST" id="frm">

 标题:<input type="text" name="title" /><br />

 信息:<input type="text" name="message" /><br />

  <input type="button" value="提交" onClick="add()" />

</form>

</body>

</html>

感兴趣的朋友可以测试运行一下本文所示实例,可以加深对Ajax应用的理解。

 

本文介绍了PHP代码添加注释的几种格式,非常实用,不会的同学可以参考一下。

PHP代码添加注释的几种格式:
1、用 // 开头,作为单行注释。例如:
<?php
    // Author: mole
    // Date:2012-2-8
    echo "Welcome!";
?>
2、用 # 开头,作为单行注释。例如:
<?php
    # Author: mole
    # Date:2012-2-8
    echo "Welcome!";
?>
3、以 /* 开头,以 * / 结束的多行注释。例如:
<?php
    /*
      下面是计算员工平均
      工资的函数

    * /
    calculate();

?>
注:上面*和/之间的空格应该是没有的

很多PHP类库在读取中文的xls、csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用。现将PHPExcel读写Excel的方法分别叙述,详细请见本文。

本文实例讲述了PHP中使用PHPExcel读写excel(xls)文件的方法,非常实用。分享给大家供大家参考之用。具体方法如下:

很多PHP类库在读取中文的xls、csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址为:http://phpexcel.codeplex.com/。现将PHPExcel读写Excel的方法分别叙述如下:

1、读取xls文件内容

 代码如下复制代码

<?php

  //向xls文件写入内容

  error_reporting(E_ALL);

  ini_set('display_errors', TRUE); 

  include'Classes/PHPExcel.php'     

  include'Classes/PHPExcel/IOFactory.php'

  //$data:xls文件内容正文

  //$title:xls文件内容标题

  //$filename:导出的文件名

  //$data和$title必须为utf-8码,否则会写入FALSE值

  functionwrite_xls($data=array(),$title=array(),$filename='report'){

    $objPHPExcel=newPHPExcel();

    //设置文档属性,设置中文会产生乱码,需要转换成utf-8格式!!

    // $objPHPExcel->getProperties()->setCreator("云舒")

               // ->setLastModifiedBy("云舒")

               // ->setTitle("产品URL导出")

               // ->setSubject("产品URL导出")

               // ->setDescription("产品URL导出")

               // ->setKeywords("产品URL导出");

    $objPHPExcel->setActiveSheetIndex(0);

     

    $cols='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    //设置www.jb51.net标题

    for($i=0,$length=count($title);$i<$length;$i++) {

      //echo $cols{$i}.Ƈ'

      $objPHPExcel->getActiveSheet()->setCellValue($cols{$i}.Ƈ',$title[$i]);

    }

    //设置标题样式

    $titleCount=count($title);

    $r=$cols{0}.Ƈ'

    $c=$cols{$titleCount}.Ƈ'

    $objPHPExcel->getActiveSheet()->getStyle("$r:$c")->applyFromArray(

      array(

        'font' =>array(

          'bold'  => true

        ),

        'alignment'=>array(

          'horizontal'=> PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,

        ),

        'borders'=>array(

          'top'  =>array(

            'style'=> PHPExcel_Style_Border::BORDER_THIN

          )

        ),

        'fill'=>array(

          'type'   => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,

          'rotation' => 90,

          'startcolor'=>array(

            'argb'=>'FFA0A0A0'

          ),

          'endcolor' =>array(

            'argb'=>'FFFFFFFF'

          )

        )

      )

    );

     

    $i= 0;

    foreach($dataas$d) {//这里用foreach,支持关联数组和数字索引数组

      $j= 0;

      foreach($das$v) { //这里用foreach,支持关联数组和数字索引数组

        $objPHPExcel->getActiveSheet()->setCellValue($cols{$j}.($i+2),$v);

        $j++;

      }

       $i++;

    }

    // 生成2003excel格式的xls文件

    header('Content-Type: application/vnd.ms-excel');

    header('Content-Disposition: attachment;filename="'.$filename.'.xls"');

    header('Cache-Control: max-age=0');

 

    $objWriter= PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');

    $objWriter->save('php://output');

  }

  $array=array(

    array(1111,'名称','品牌','商品名','http://www.jb51.net'),

    array(1111,'名称','品牌','商品名','http://www.jb51.net'),

    array(1111,'名称','品牌','商品名','http://www.jb51.net'),

    array(1111,'名称','品牌','商品名','http://www.jb51.net'),

    array(1111,'名称','品牌','商品名','http://www.jb51.net'),

  );

  write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report');

   

?>

2、向xls文件写内容

 代码如下复制代码

<?php

  //获取数据库数据(mysqli预处理学习)

  $config=array(

    'DB_TYPE'=>'mysql',

    'DB_HOST'=>'localhost',

    'DB_NAME'=>'test',

    'DB_USER'=>'root',

    'DB_PWD'=>'root',

    'DB_PORT'=>񠁚',

  );

  functiongetProductIdByName($name) {

    global$config;

    $id= false;

     

    $mysqli=newmysqli($config['DB_HOST'],$config['DB_USER'],$config['DB_PWD'],$config['DB_NAME']);

    if(mysqli_connect_error()) { //兼容 < php5.2.9 OO way:$mysqli->connect_error

      die("连接失败,错误码:".mysqli_connect_errno()."错误信息:".mysqli_connect_error());

    }

    //设置连接数据库的编码,不要忘了设置

    $mysqli->set_charset("gbk");

    //中文字符的编码要与数据库一致,若没设置,结果为null

    $name= iconv("utf-8","gbk//IGNORE",$name);

    if($mysqli_stmt=$mysqli->prepare("select id from 137_product where name like ?")) {

      $mysqli_stmt->bind_param("s",$name);

      $mysqli_stmt->execute();

      $mysqli_stmt->bind_result($id);

      $mysqli_stmt->fetch();

      $mysqli_stmt->close();

    }

    $mysqli->close();

    return$id; //得到的是gbk码(同数据库编码)

  } 

  $id= getProductIdByName('%伊奈卫浴伊奈分体座便器%');

  var_dump($id);

?>

希望本文所述对大家的PHP程序设计有所帮助

[!--infotagslink--]

相关文章

  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • mac下Apache + MySql + PHP搭建网站开发环境

    首先为什不自己分别搭建Apache,PHP和MySql的环境呢?这样自己可以了解更多知识,说起来也更酷。可也许因为我懒吧,我是那种“既然有现成的,用就是了”的人。君子生非异也,善假于物也。两千年前的荀子就教导我们,要善于利用工具...2014-06-07
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • vscode搭建STM32开发环境的详细过程

    这篇文章主要介绍了vscode搭建STM32开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-02
  • php实现网站留言板功能

    我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • 安卓开发之Intent传递Object与List教程

    下面我们一起来看一篇关于 安卓开发之Intent传递Object与List的例子,希望这个例子能够为各位同学带来帮助。 Intent 不仅可以传单个的值,也可以传对象与数据集合...2016-09-20
  • 网站广告怎么投放最好?首屏广告投放类型优化和广告位布局优化的案例

    网站广告怎么投放最好?一个网站中广告位置最好的是哪几个地方呢,许多的朋友都不知道如何让自己的网站广告收效最好了,今天我们就一起来看看吧。 在说到联盟优化前,...2016-10-10
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • 如何设计一个安全的API接口详解

    在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • 微信开发生成带参数的二维码的讲解

    在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微...2016-05-19
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
  • Chrome插件开发系列一:弹窗终结者开发实战

    从这一节开始,我们将从零开始打造我们的chrome插件工具库,第一节我们将讲一下插件开发的基础知识并构建一个简单但却很实用的插件,在构建之前,我们先简单的了解一下插件以及插件开发的基础知识...2020-10-03