PHP入门简单指引

 更新时间:2016年11月25日 15:17  点击:1434

具体什么日子开始接触的PHP,默默这呆脑瓜已经想不起来了,但是应该说时间已经不算短了,虽然我经常是昨天的事今天就忘.


以前我在进入计算机行业的时候面临很多选择,做软件,搞设计,搞网站等等,分析了做软件,盗版破解率高,所以没进,分析搞设计,我本身没有接受过任何美术知识,虽然画画还算不错,但是缺少了理论基础,总感觉是有点不怎么合适,所以也没有考虑,最后是做网站,虽然默默的理科成绩并不是很优异,但是悟性和逻辑性还算比较强的,而且,我也比较喜欢编程,因此就选择了它。


那个时候我只知道HTML,最后费了好大的劲做了一个静态的网站,当时我还傻乎乎的做了个登陆框在上面,虽然点确定都不跳转,但是我看见那么多站都有,我也得挂一个吧,现在想起来,好笑之后更多的是郁闷。


之后才开始接触动态语言,首先让我选的是ASP,我当时看了看ASP的代码,感觉有点别扭,在无意中看到了PHP,看了看,比较舒服,就选它,也许有人会怀疑,当初默默真的就是从代码看着顺不顺眼这个单纯的动机选择的PHP吗?事实的确如此,那个时候的我根本没有能力来衡量它们之间的优异,但是至少,我相信我的选择是正确的。


学习PHP的日子,艰辛而枯燥,那个时候的教程少的可怜,错误百出,更惨的是几乎每个教程站的文章都千篇一律,有的时候看到一篇不完整的教程,找了半天也找不到另外一部分,相当的郁闷,更悲惨的是,这些资料几乎全是讲的很学究,一些术语搞的我半天回不过味来,到底是什么,什么是什么?当时还查了查有没地方可教,结果是失望。


失望归失望,困难归困难,默默从不放弃,哪怕是这个世界上就剩下我一个人学PHP,我也不会停止学习的脚步,这种性格并不是天生的,因为以前我失败过太多,现在的我想证明自己,有能力,有实力,我要为我的选择而负责,我也要为我自己的未来而负责。


废话说了很多,难免有大大说我罗嗦,那么切入正题吧。
1,PHP到底是什么,它到底能为我做什么?
这是每一个刚遇到PHP的人脑海里的第一个问号,假如我们说和ASP一样,那么肯定他们又有了第二个问号,ASP是什么?


其实PHP就是一个工具,脚本语言,它能做什么,只是一种目的问题,但是它普遍是用来做网站。
脚本语言是什么,这个问题不用考虑,因为你只要知道PHP属于脚本语言就可以了。


2,学习PHP要注意什么?
所谓的注意其实就是窍门,学习PHP可以说没有窍门,也可以说有窍门,因为每个人的思维模式存在差异,有些事情在理解上存在着很大的不同,在我理解中的一个事物,在别人的想法里就不同了,因此,当接收到别人对该事物的描述,首先要转化为自己的理解模式,在PHP这里,你要知道的唯一一点就是坚持,这是唯一一个共通的窍门,没有一个比它更管用。


3,该怎么开始学习PHP?
PHP并不是一种独立环境,它所依附的是一个网站运行环境,目前普遍采用apache+php的组合,IIS中也可以,关于如何架设PHP环境,在搜索引擎中你会找到答案。
架设好环境是前提,之后,你就要开始学习它的语法结构以及注意事项了。


4,学习过什么编程语言之后对学习PHP有帮助?
PHP是一种类C/C++语言,所以之前学过C/C++会有帮助,但是不能直接照搬。


5,PHP文件用什么打开?为什么我找到的PHP文件打不开?
PHP文件是一种文本格式,采用任何文本编辑器都可以轻易打开,WINDOWS里的Notepad记事本或linux下的Vim等都可以直接打开。


6,学习PHP必须得用Linux吗?
PHP存在WINDOWS和UNIX的版本,因此在WINDOWS和LINUX都可以学好PHP,使用LINUX必须要重新学习一种新的操作系统,你可以选择使用或不使用,但是默默推荐你使用LINUX。


7,我英文不好,是不是学不好php?
PHP的语法中全部是简单的英文,其实很好理解,至于资料文档,有相当部分的优秀文档都已经被翻译,因此在学习PHP的时候不必太在意自己的英语水平,不过英语是一个重要的科目,默默推荐你在学习PHP的过程中多加提高自己的英语水平,这在今后的道路中会起到很大的推进作用。


8,我怎么听说ASP/JSP/.NET比php强很多?
每个人都有一种理解事物的态度,就比如默默,我就是单纯的看着代码顺不顺眼就选择了PHP,这之中不必太在意别人的态度,有时候,相信自己比相信任何人都要有用,我的意思是,你也可以不相信默默,一切都要靠自己选择,但是得记住,选择之后都要学下去,无论多么困难。


9,我可以从哪里获得PHP的最新信息?
PHP官方站是你的不二选择,当然前提是英文要好,另外PHPCHINA.CN也是一个非常不错的地方,你现在不就来了吗?假如你看到这篇文章的时候并没有在PHPCHIAN.CN,来看一下总归不是坏事,另外还有很多地方可以去,总之,现在学习PHP比以前更便易,你再也不会感觉到孤独。


10,是不是学完了PHP就可以做出好的网站?
PHP是做网站的一个因素,要做出一个漂亮的网站,HTML+JAVASCRIPT+CSS+PHP+MYSQL+...才可以,不过,你现在的任务是先学会PHP,一个一个的来,不要被我列出的长串元素吓到,其实它们都很简单。


以前是我对PHP的一些东西的个人理解,仅对新手起到提示作用,效果不敢保证,而且也不权威,大家参考一下吧。
1,<? ?>是什么?为什么必须写它?
<? ?>是定界符,或叫声明符,主要是出现在PHP代码的开始和结束,说通俗一点就是国界,它里面的全部都是PHP的子民,除了这样声明还有<?php ?> <script language=php></script>等。只要是它外面的都不归PHP管。


2,变量是什么?常量又是什么?
通俗一点,变量就是一个房间,谁都可以进那里去吃饭,以后找那个吃饭的人,直接说房间的名字就能找到,起到一个借代作用。
常量就是一个被包下的房间,里面的人是固定的,一般是不会变的。


3,数据类型是什么?
数据类型就是一种分类,比如说水果类,里面有香蕉啊,橘子啊,但是它们都是水果。


4,函数是什么?
函数就是像是冰激凌机,你可以直接按出冰激凌,它就出了一个普通的冰激凌,你也可以说出什么颜色的,你也可以指定出什么形状的,你也可以说用什么来盛的,冰激凌机几乎是万能的,但是里面的东西造好之后,你就别管它是什么构造了,只要按按钮,它就直接执行功能了。


5,流程控制是什么?
比如在马路上遇到了警察,他一看你是骑的自行车,就让你走非机动车道,这就是if判断,你身后的人如果是开车的,警察就让他走机动车道。
或者是马路上又有警察啦,原来是本市发生了重大事件,要查车,你会发现他挨个的检查,假如一直没罪犯,他们就检查到天荒地老(那会把我们的警察叔叔累死的....),假如检查到了罪犯,他们就立即停止,这就是while循环。
今天不是马路了,到了电影院了,哈,播的什么电影?秘密,你买了票,拿着票到了检票员那里,检票员看了看你的票号,你是8号,于是你就到了8号那里,这属于select流程。
今天你真惨,你迟到了,还是体育老师的课,哇,你老师一点面子不给你,让你去跑10次操场。累坏了吧。这叫for循环。


6,类是什么?
打比方,你做了一个造人的类,这个类能干什么呢?首先,你指定这个人的头发是黑的,皮肤是白的,眼睛是白的,嘴巴是红的,舌头是长的,哇,鬼啊!然后你可以让你指定的这个人,抬头,抬脚,抓耳,挠腮,-_-猴子。
这个造人的类结构别人是不知道的,也不需要知道的,只要知道怎么使用就行。

教你如何 配置 phpMyAdmin

下载:请到phpmyadmin官方站点 http://www.phpmyadmin.net/ 下载phpmyadmin文件,

解压后对phpmyadmin进行设置我边讲例子别解析:

解压后得到一个目录,与以前的版本不同,2.8版的phpMyAdmin 的根目录中没有名为 config.inc.php 的配置文件,现在的配置文件是 libraries/config.default.php 进在该文件中

我的目录为:http://www.111cn.net/myadmin/


找到 $cfg['PmaAbsoluteUri']
修改你将上传到空间的phpMyAdmin的网址
如:$cfg['PmaAbsoluteUri'] = 'http://yoursite/phpmyadmin/';

还有下面的
$cfg['Servers'][$i]['host'] = 'localhost';(通常用默认, 也可能是主机IP)


$cfg['Servers'][$i]['host'] = 'localhost;这里是默认的我们一般不改

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password'] = '******';

为了安全起见我们找到设置$cfg['Servers'][$i]['auth_type'] = ''修改值勤cookie


$cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)?
config: 按照 自身 libraries/config.default.php 文件中的配置提供用户名和密码
cookie:用于输入口令方式登陆,如果选择此项,需要设置$cfg['blowfish_secret'] = 'cookie';(见后面的介绍)

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user(用户名,自己机里用root,在网上设你的mysql用户名)
$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed
自己机里不用设
$cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only(你只有一个数据就设置一下)

注:$cfg['blowfish_secret'] = '';
本机的话不需要设置,但是网络的话需要设置成cookie:
$cfg['blowfish_secret'] = 'cookie';

设置完毕可以上传到网上了。

浏览http://yoursite//phpmyadmin/ 当然你设置不同就用那个网址。
如果设置$cfg['Servers'][$i]['auth_type'] = 'cookie'; 所以显示会要求输入帐号密码,这里的帐号和密码你在提供商获得的mysql数据库的帐号、密码。

好了,就这么简单,对新手应该有一点点帮助.

方法很简单,在apache http.conf 里面修改如何代码,重起apache就行了.

    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
   AddType application/x-httpd-php .asp

如何使用PHP获取网络上文件
<!-- generateindex.php -->
<?php
//设置我们将要使用的文件
$srcurl = "http://www.111cn.net/index.php";
$tname = "tindex.html";
$target_name = "index.html";
?>
<HTML>
<HEAD>
<TITLE>
Generating <?php echo("$target_name"); ?>
</TITLE>
</HEAD>
<BODY>
<P>Generating <?php echo("$target_name"); ?>...</P>
<?php
//首先删除上次操作可能遗留下来的临时文件。
//这个过程可能会提示错误,所以我们使用@以防止报错。
@unlink($tname);
//通过一个URL的请求装入动态版本。
//在我们接收到相关内容之前,Web服务器会对PHP进行处理
//(因为本质上我们是在模拟一个Web浏览器),
//所以我们将获得的是一个静态的HTML页面。
//'r'指出我们只要求对这个“文件”进行读操作。
$dpage = fopen($srcurl, 'r');
//处理错误
if (!$npage) {
echo("<P>不能打开静态页面".
"更新失败!</P>");
exit();
}
//将这个URL的内容读入到一个PHP变量中。
//指定我们将读取1MB的数据(超过这个数据量一般是意味着出错了)。
$html_data = fread($dpage, 1024*1024);
//当我们完成工作后,关闭到源“文件”的连接。
fclose($dage);
//打开临时文件(同时在这个过程中建立)以用来写入(注意'w'的用法).
$tempfile = fopen($tname, 'w');
//处理错误
if (!$tempfile) {
echo("<P>不能打开".
"($tname) 并写到静态文件且更新失败".
!</P>");
exit();
}
//将静态页面的数据写入到临时文件中
fwrite($tfile, $htmldata);
//完成写入后,关闭临时文件。
fclose($tfile);
//如果到了这里,我们应该已经成功地写好了一个临时文件,
//现在我们可以用它来覆盖原来的静态页面了。
$ok = copy($tname, $target_name);
//最后删除这个临时文件。
unlink($tname);
?>
<P>静态文件更新成功!</P>
</BODY>
</HTML>

这是类
<?php
/*========================================================
类名:catalog
功能:无限分级类
方法:
        树形显示分类
        catalog_show($id) //参数$id 递归调用
                流程:找到父分类为0所有根分类-> 一直递归取得所有分类并显示       
        添加分类
                catalog_add($uid,$name) //$uid 父id  //$name 分类名               
                流程:依据$uid,在此id下添加一个新子id
        删除分类
                catalog_del($uid)//参数 $uid 数要删除的分类
        修改分类
                catalog_set($id,$name) //参数 $id 要修改的分类  //参数 $name  新的分类名
变量:
        $config                                //数据库信息-> host,user,pass,dbname
        $catalog_dbname                //分类数据库名
数据库:
        catalog_id                        //分类的自然序号
        catalog_uid                        //分类的父分类
        catalog_name                //分类名
        catalog_path_number        //亲缘树数字形式  0:1:2
        catalog_path_char        //亲缘树字符形式  分类1:分类1.1:分类1.1.1
参照文章 [url]http://www.111cn.net/12823/viewspace_4468.html[/url]
========================================================*/
class catalog{
        var $config;
        var $catalog_dbname;
        var $links;
        private function connect(){
                $this->links = mysql_connect($this->config['host'],$this->config['user'],$this->config['pass']) or die("错误: 第".__LINE__."行<br>".mysql_error());
                mysql_select_db($this->config['dbname'],$this->links);
                mysql_query("SET NAMES gb2312");
        }
       
        function catalog_show($uid = 0){
                $this->connect();
                $sql = "SELECT * FROM ".$this->catalog_dbname. "
                                        WHERE catalog_uid = ". $uid ."
                                                 ORDER BY catalog_id ";
                $result = mysql_query($sql,$this->links) or die("错误: 第".__LINE__."行<br>".mysql_error());
               
                if(mysql_num_rows($result) > 0){
                        while ($row = mysql_fetch_assoc($result)){       
                                if($this->sun_catalog($row['catalog_id'])){//判断有没有子分类
                                        $cata_img = "<img id = 'img".$row['catalog_id']."' src='./img/last_node.jpg' onclick='click_catalog(".$row['catalog_id'].")'/>";
                                }else{
                                        $cata_img = "<img src='./img/sp.jpg'/>";
                                }
               
                                $path = explode(":",$row['catalog_path_number']);
                                if(count($path) > 1){
                                        for($i=1;$i<count($path);$i++){
                                                $path_img .= "<img src='./img/sp.jpg'/>";
                                        }
                                }
                                echo $path_img.$cata_img;
                                echo "<a class='menu' href = 'javascript:send_id(".$row['catalog_id'].")'>";
                                echo $row['catalog_name']."</a><br>";
                                $path_img = "";
                                if($this->sun_catalog($row['catalog_id'])){                                       
                                        $hidden_div  = "style='display:none'";                                               
                                        echo "<div id = 'div".$row['catalog_id']."' ".$hidden_div.">";                                       
                                        $this->catalog_show($row['catalog_id']);
                                        echo "</div>";
                                }                                               
                        }
                }               
        }
        private function sun_catalog($uid){//判断是否有子分类
                $sql = "SELECT * FROM ".$this->catalog_dbname. "
                                        WHERE catalog_uid = ". $uid ."
                                                 ORDER BY catalog_id ";
                $result = mysql_query($sql,$this->links) or die("错误: 第".__LINE__."行<br>".mysql_error());
                if(mysql_num_rows($result) > 0){
                        return true;
                }else{
                        return false;
                }
       
        }
        function catalog_add($uid,$name){
                //获取父id的亲缘树
                $this->connect();
                $sql = "SELECT * FROM ".$this->catalog_dbname."
                                         WHERE catalog_id = '".$uid."'";
                $result = mysql_query($sql,$this->links)
                                                or die("错误: 第".__LINE__."行<br>".mysql_error());
                $row = mysql_fetch_assoc($result);
                $fid_path_number = $row['catalog_path_number'];//id的数字亲缘树
                $fid_path_char = $row['catalog_path_char'];//id的字符亲缘树
                //插入数据 先插入行->再找到最新插入的id, 在依据这个id进行修改
                $sql = "INSERT INTO ".$this->catalog_dbname."(catalog_uid,catalog_name)
                                        VALUES(".$uid.",'".$name."')";
                $result = mysql_query($sql,$this->links)
                                                or die("错误: 第".__LINE__."行<br>".mysql_error());
                $catalog_id = mysql_insert_id();//获取自己的id
                $catalog_path_number = $fid_path_number.":".$catalog_id;//得到自己的数字亲缘数
                $catalog_path_char = $fid_path_char.":".$name;//得到自己的字符亲缘数
               
                $sql = "UPDATE '".$this->catalog_dbname."'
                                        SET
                                                catalog_path_number = '".$catalog_path_number."',
                                                catalog_path_char = '".$catalog_path_char."'
                                        WHERE
                                                catalog_id = ".$catalog_id;       
                mysql_query($sql,$this->links)
                                or die("错误: 第".__LINE__."行<br>".mysql_error());       
                       
        }
       
        function catalog_del($id){
                $this->connect();
                $sql = "DELETE FROM ".$this->catalog_dbname."
                                        WHERE catalog_id = ".$id;
                mysql_query($sql,$this->links)
                                or die("错误: 第".__LINE__."行<br>".mysql_error());
        }
        function catalog_set($id,$name){
                $this->connect();
                $sql = "UPDATE ".$this->catalog_dbname."
                                        SET
                                                catalog_name = '".$name."'
                                        WHERE
                                                catalog_id = ".$id;       
                mysql_query($sql,$this->links)
                                or die("错误: 第".__LINE__."行<br>".mysql_error());
               
        }
       
       
}
?>

[!--infotagslink--]

相关文章

  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • photoshop画斜线/直线/虚线的入门级教程

    这篇文章算是超级入门级别的了,我们下面来给各位介绍在photoshop画斜线/直线/虚线的教程了,希望下面这篇文章给你入门来帮助。 PS怎么画斜线 选择铅笔工具,或者画笔...2016-09-14
  • 源码分析系列之json_encode()如何转化一个对象

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

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • 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
  • PHP编程 SSO详细介绍及简单实例

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

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • 20分钟MySQL基础入门

    这篇文章主要为大家分享了20分钟MySQL基础入门教程,快速掌握MySQL基础知识,真正了解MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-12-02
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • 关于MySQL外键的简单学习教程

    在MySQL中,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时...2015-11-24
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • PHP如何使用cURL实现Get和Post请求

    这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
  • 谈谈PHP中相对路径的问题与绝对路径的使用

    经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
  • php构造方法中析构方法在继承中的表现

    这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15