php小

PHP是什么?程序猿小白的第一次实操,PHP运行环境搭建和配置

对于程序猿小白而言肯定会问:PHP是什么?那么给小白普及下:PHP是一种快速地开发动态Web网页的脚本语言。与ASP,JSP一样,PHP是服务器端的、嵌入式HTML脚本语言,区别于其他客户端脚本的地方是它的页面嵌入代码在服务器端执行,仅把执行结果作为输出传给客户端。客户端收到的将是这个服务端脚本运行的结果,而无法获得服务端的执行源代码。

作为一种新兴的网络前向技术,PHP具有以下优势:

1、PHP是免费的,网络上可以PHP源代码,都是开源的。方便开发者在此基础上进行二次开发。

2、用PHP编写的代码执行起来更快,并且有很好的兼容性,能实现同样功能的PHP代码,不用改变就可以在不同的Web服务器上、不同的操作系统下运行。

3、PHP支持HTTP的身份认证、GIF图像创建等功能。它的一个具有代表性的特点是它的数据库层,它使编写基于数据库的网页变得十分简单。目前,PHP所支持的数据库有Oracle、Sybase、MySQL、Informix、ODBC、UNIX dbm等。

4、PHP提供了丰富的网络函数簇,利用这些函数,PHP能轻松实现与其他协议的交互,这使得开发一个综合性的网站变得很容易。

5、PHP提供了加密函数簇,这些函数为开发对安全性有较高要求的电子商务网站提供了坚实的基础。

6、PHP的功能可以扩展。开发者如果嫌PHP功能不够强大,可以在其上写自己的DLL,扩展自己定义的功能。

上面六点介绍了一些PHP的概念,那么有的程序猿猿小白又会问:怎么来搭建PHP的开发环境呢?小编这就一一道来,使用到的是一款集成包软件,搭建起来非常的方便。成功搭建后,便可以正式开启PHP的学习之旅。使用的是APPSERV的集成包软件来搭建PHP开发环境,步骤如下:

第一步、双击打开APPSERV软件。

第二步、下一步以及同意软件的安装协议,选择安装目录。

第三步、这个界面四个选项都需要打上勾,Apache Http Server是指运行PHP的Apache服务器,MySQL Database是指开发所需要使用到的数据库,PHP Hypertext Preprocessor是指PHP语言,phpMyAdmin是图形化管理数据库的工具。

第四步、Server Name输入127.0.0.1或者localhost,这里指的是当编写完PHP程序是,需要调试的时候输入的网址。Admistrators Email Address输入测试邮箱地址,这是指的管理员邮箱。Apache HTTP Port默认80,这指的是网站发布的端口号。温馨提醒:如果你的服务器端口事先已经被其他程序占用了80端口,此时需要另外填写一个:例如8080端口。否则的话会影响你网站的正常发布。

第五步、输入数据库密码和确认数据库密码。选择网页编码,一般常用的两种网页编码(UTF-8和GB2312)。

第六步、基本上PHP开发环境就已经安装完毕。

第七步、如果你需要测试是否安装成功的话,可以在浏览器上输入刚刚填写的127.0.0.1。出现这界面说明你的PHP环境已经成功搭建完成。

最后数据库如何测试是否安装成功呢?如果你是按照小编的步骤一步一步操作的话,99%数据库是没问题的。这里大家自己去翻阅资料编写一段PHP语句连接安装的MySQL数据库,操作非常简单。这里就不一一介绍,如何想和小编继续探讨更深一层的问题,可以留言,一起学习一起进步一起成长。

展开
收起

一文读懂PHP数组的使用和声明方式,建议php小白收藏!

怎么理解数组

数组是php中经常使用的数据类型,它的应用非常广泛,因为php语言它的特点数组变量可以储存多个任意类型数据。把数据作为一个单元的使用。数组就是值类型相同的变量的集合,我们可以把变量当做一个包含值得盒子,那么可以把数组当做当成一个带有隔层的盒子,每一层都可以存放一个值。

使用数组的目的

使用数组最直接目的是批量处理数据,数组的本质是存储、管理和操作一组变量。数组存储数据的容量可以根据数组元素个数的增减自动调整。我们还可以使用数组完成其他强类型语言里面数据结构功能,比如说java中的集合。

例如我们可以上图中表格中的内容使用一个复合类型变量声明,组成一个“联系人”的二维数组。也可以使用双层循坏将二维数组中每个数据都遍历出来再输出给浏览器,我们也可以把这些数据插入到数据库,也可以装换成xml文件等。

数组分类

在php中根据提供下标的不同方式,将数组可以分为索引数组和关联数组两种;

索引数组:在索引数组中索引值是整数。在大部分编程语言中,数组都具有数字索引,从0开始一次递增。在索引数组中可以通过位置来标识数组元素。

关联数组:在关联数组中字符串作为索引值。在其他编程语言中非常少见,但是PHP中使用字符串作为下标数组非常常见。在关联数组可以通过名称来标识数组元素。

数组声明的方法

直接赋值方式声明数组

这是数组中最简单的一种,也是最常用的一种。语法如下所示:

$数组变量名[索引值]=内容

数组没有大小限制,在声明的同时就一块对数组进行了初始化,在下例中声明了两个数组变量,分别是person1和person2。在变量名后通过方括号[]中使用数字声明索引数组,使用了字符串声明关联数组。如下所示

上面声明了$person1和$person2两个数组,每个数组有4各元素,数组声明后访问方式也是变量名后面的[]传入下标,访问数组中具体元素代码如下

输出信息如下:

使用array()函数声明数组

array()语言新建数组,用逗号分隔数组的键和值(key=>value)语法格式如下

$数组变量名=array(key1=>value1,key2=>value2.......keyN=>valueN);

如果不使用“=>”符合指定下标,默认为索引数组。默认的索引值从0开始一次增加代码示例如下:

$person1=array(1,"张三",“男”,“河北”);

以上代码是创建为$person数组,包括四个元素,默认索引值从0开始。

展开
收起

php开发小白如何熟练使用PDO连接MYSQL?要从这几点去掌握!

大家好!今天应粉丝留言出一期关于php和mysql的内容,如果想把数据库的出现在web页面中,必须知道如何在PHP脚本中建立mysql的连接,今天给大家说的内容是“如何用php连接mysql数据库”。

php通过什么程序连接到数据库?

我们使用的是phpmyadmin的phpweb应用程序连接数据库。相对于其他的第三方数据管理软件,phpmyadmin是常用的,它能够直接连接到运行中的MYSQL数据库服务器,在php中是由php的数据对象(php Date Objects,PDO)扩展来实现MYSQL数据库的连接。

PDO连接数据库的语法:

new PDO(‘mysql:host=myhostname;dbname=mydatebase’,‘username’,‘password’)

1、将newpdo看成一个内建的函数,需要注意的是函数名中不能出现空格。

2、字符串说明了mysql数据库的类型、服务器主机名host=myhostname、数据库名称dbname=mydatebase’。

3、输入你想让php使用的数据库mysql的用户名。

4、该用户的MYSQL的密码。

使用new PDO连接数据库需要注意什么?

mysql和是和服务器相分离的一个软件,如果出现密码错误、网络中断等情况,会导致数据库不可用或者无法访问,在这种情况下new pdo不会允许会抛出一个异常。

php异常是上述情况下发生的,作为开发者我们必须考虑到在连接数据中的这种情况,当php无法执行该任务时,php试图做你让它做的事,但是会失败,php为了告诉你不能执行的消息,会抛出一个异常。

php pdo连接mysql完整实例:

try{ $dbh =new PDO(‘mysql:host=myhostname;dbname=mydatebase’,‘username’,‘password’); echo "连接成功<br/>"; }}catch(PDOException $e){die("Error!: ". $e->getMessage()."<br/>");exit();}关于“PHP如何连接mysql”先聊到这。每天学习一个知识点,每日寄语”你若盛开,蝴蝶自来;你若精彩,天自安排。”如转载请标注出处,近期发现有个人未经允许擅自转载,本人声明请尽快删除。

展开
收起

php直播平台源码的直播带货平台有何技巧,别说没告诉你

直播带货平台想必大家都不陌生,他为我们的购物生活提供了便利,也成就了很多的电商群体,很多人经常私信问我直播带货怎么样才能挣钱,那么今天我要跟大家讨论的就是关于php直播平台源码的直播带货平台有何技巧,别说我没告诉你。

一、 吸引用户量涨粉

用户对于主播来说是非常重要的,所以在php直播平台源码的直播带货平台中可以通过主播的直播特色以及当下的流行趋势,带动庞大的用户才能将其转化为“粉丝”和让其购买商品,用户的数量越多,对于用户来说这个主播的越可靠,这里面涉及到一个从众心理,就是说看的人那么多,买的人那么多,所以感觉这个产品一定没什么问题。

二、与粉丝用户建立信任

在php直播平台源码的直播带货平台中,主播作为品牌和用户之间的桥梁,用户不相信主播的可靠哪怕价格再优惠也不敢购买,主播必须通过直播的时候现场和品牌方进行砍价还有就是溯源直播、溯源视频,例如亲临产品的生产线环境以及流程,卫生达不达标,是不是小作坊的成品等,通过这类的方式来与用户之间建立信任感,让粉丝用户增加对产品的了解,以及与主播的信任,起到一种类似于明星效应的效果。

三、主攻自己的领域

直播带货一定要选择做自己擅长领域的产品,对产品做足功课,给粉丝用户塑造产品价值,突出优点和优惠价格,在php直播平台源码的直播带货平台中如果是卖一些知名度不是很高的小众品牌产品,可以选择与一些知名品牌作对比,比如说他们有的功能特效这款产品同样有,凸显产品的性价比,也能营造出自己对于此类产品行业的专业度让粉丝用户放心。

四、站在用户角度思考

直播带货过程中切记不要一味推销产品,疯狂夸赞产品好,偶尔要表达出自己真实的感觉,让用户觉得你没有虚构,是真正站在用户的角度挑选推荐产品,能够自己做出选择:需要你就买,不需要你就不买。劝粉丝不要盲目购买产品,比强势地推销更容易被人接受。

上述几点就是关于在php直播平台源码的直播带货平台中的带货技巧,这也是我总结的一小部分,时代在变化,只有不断地总结和提升自己的能力,才能吸引更多的商家合作,互利共赢。

展开
收起

PHP日常开发小结

参考一些博主的经验和自己的开发经验进行总结-持续更新ing。

功能设计

功能尽量模块化;类的设计尽量单一,函数功能单一;需要uml图(类图、时序图、组件图)、文档沉淀;

编写风格

遵循PSR-1 基础编码规范https://laravel-china.org遵循PSR-2 编码风格规范https://laravel-china.org注释!!!常量、env代替硬编码路由遵循RestfulApi原则created_at(INT类型),updated_at(TIMESTAMP ON CURRENT_TIMESTAMP,日期类型,自动更新), deleted_at(default NULL)

代码分布

MVC

Model - sql处理,不应当出现业务View -Controller - 处理参数验证和方法调用(更彻底的方式是新建一个请求类,请求类处理验证和参数过滤,控制类调用请求类)Service - 业务

升级版本http://birjemin.com/wiki/php-ouran

Laravel一些注意点

主要是参考2,详情请查看参考2的链接。

优先使用 Eloquent 和集合来操作和处理数据。使用被社区接受的标准 Laravel 工具遵循 Laravel 命名约定使用缩写或可读性更好的语法(optional、)使用 IoC 容器或门面不要从直接从 .env 获取数据(采用config()方法)

需求流程

需求评审会议QA出Case,DEV估时、出方案(类图、时序图、组件图)评审需求Case会议、需求设计方案会议开发DEV根据Case自测(应该还有一个单元测试)交付QA(功能测试)验收上线复盘会议

开发流程

出接口文档开发接口自测、单元测试联调case自测交接QA

性能优化

数据层面

使用ssdb添加索引,读写分离,拆表,sql语句优化添加缓存预先计算(将结果预先计算好,比如脚本定时计算、实时计算结果)采用日志收集技术,异步处理分页获取数据使用es进行大量数据的聚合运算

业务方面

异步代替同步限流砍需求呗

其他

开启opcache

和产品PD撕逼的艺术

能动手就别动嘴

补充

要把产品经理PM拉倒自己的阵营~~~

参考

https://psr.phphub.org/https://github.com/nonfu/laravel-best-practiceshttp://plantuml.com/https://www.cnblogs.com/easypass/archive/2010/12/08/1900127.html

展开
收起

php编程小白必须要了解几种函数参数的传递方式

之前几篇文章详细介绍了php函数,对php函数不了解的可以看看我前几天发的文章,php函数由函数名、函数参数、函数体、return返回值组成,在函数调用过程中,被调用函数和执行程序通过函数参数进行数据传输,这篇文章为大家介绍一下函数中参数是通过哪些方式传递的?

参数传递其实就是在执行函数前导入某些值,供函数处理执行。php函数中传递参数的方式主要有按值传递参数和按引用传递参数,另外php函数还支持默认参数列表的传递方式。

按值传递参数

参数列表可以传递数据到函数,逗号分隔表达式,再php中默认是按值传递参数的,函数成为子程序,调用函数的程序成为父程序。父程序直接传递指定的值或是变量给函数使用,传递的值存于不同的内存区块,子程序对导入的数据做任何修改都不会对父程序有任何直接影响。

如上图所示,$a是函数test的形参,$b是函数test的实参,调用函数test($b)不会影响到$b的值,$b初始值仍为200.

按引用传递参数

默认情况下函数内部改变参数的值,并不会改变函数外部的值,如果我们想允许函数修改它的参数值从而改变函数外部的值,这时候必须通过引用传递参数。使用引用传递参数后,参数值的改变会连带对父程序造成影响。使用按引用传递参数需要在参数前加上符号“&”即可。如图所示:

调用test函数时,因为使用的是按引用传递参数原因,$b的值是100而不是200。

函数的默认参数

定义函数时声明了参数,在调用函数没有参数,就会出现警告。在php中,支持函数的默认方式调用,即为参数指定一个默认值。再调用函数时没有指定参数的值,在函数中会使用参数的默认值。默认值必须是常量表达式不是变量,类成员或者函数调用,php还允许使用数组和特殊类型null作为默认参数。如图所示:

运行结果

person();使用了函数的默认参数,person(“张三”)覆盖了$name的值,使用了函数默认参数$age的值,而person(“张三”,30)没有使用函数的默认参数值。

以上是关于php函数参数值传递的内容,如果大家有更好的想法可以相互讨论下!

展开
收起

小白一年都没有学会的php编程语言,后来发现学习方式错了

php在编程语言中算是比较简单的语言,最近有个新手苦诉php学习太难了,其实他不是新手,是学php编程语言一年了,还是没有学到什么,所以算是新手吧。

在他讲述中,他每天熬夜学习,看视频,结果一年下来就会基础语言,自己开发简单的系统都不会,后来只能放弃程序员职业。

为什么一年都没有学会的php编程语言?后来发现他学习方式错了。

他每天熬夜学习,每天都很压抑,没有注意合理安排休息时间,你每天就是知道学习,学完的东西没有消化。

他没有和别人交流,他讲述中自己在房间里学习,有问题也不上网问别人,结果不懂的问题就一直搁着,最后问题多了,发现自己真的什么都不会。

只看视频和看别人代码自己没有实战,这是作为程序员最致命的学习方式,没有自己动手过你真的不懂这个问题为什么要这样做。

如果学习一年编程语言,百分之七十时间是自己敲代码,你就不会是小白,学习方式不对,你再学习十年还是这样的小白。

最后提醒新手学习PHP编程语言注意的一些问题,PHP编程语言是最容易学习的,从基础学习,每天坚持自己写代码,有问题动手网上查找问题,提问别人,学习基础完成就要学习框架系统,正真实战,多和别人你会发现很多问题你没有见过。程序员就是要动手,思考,解决问题。

责任编辑:wx-mowen

展开
收起

3分钟短文|PHP下载小小的网络资源文件,用啥办法最快?

引言

在程序内下载资源文件,这本身就是一个充满了不确定因素的事情。可能会因为网络超时连接中断,或者程序故障抛出各种异常,在实际中我们一般要避免在程序流程中下载文件。

如果是实在无法避免,用什么办法比较高效呢?或者说比较轻量级呢?本文就来说一说。

学习时间

最直接的办法就是使用内置函数 file_get_contents。参数形式如下:

int file_put_contents( string $filename, mixed $data[, int $flags = 0[, resource $context]] )

这个函数设计的很巧妙,兼容了很多场景下的使用。我们只需要按照相应的参数填入,就可以组装出各种各样的功能。

如果是下载资源,那么会分为两步。第一,把远程资源拿到本地。第二,把该资源写入本地文件。使用代码实现如下:

file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));

其中在位置参数 $data 的位置,传入了一个fopen生成的文件句柄。

根据函数手册上所说,如果$data 指定的是流,则该流的缓冲区将被复制到指定的文件。对标的函数是 stream_copy_to_stream。那样写起来就得是这样的:

是不是没有file_put_contents精简。难怪很多敲代码的老司机,习惯于使用这一个函数进行网络请求呢!

文件操作

纯粹使用文件操作,也没有问题,使用PHP提供的 fopen fclose fwrite fread 等函数,完全可以胜任。我们将其封装为一个助手函数:

因为不能确定原始文件的长度,在读写的时候,需要注意缓存区的大小,分块读入和写入。其中参数 1024 * 8,指定每次读写 8K 字节。使用 feof 判断文件是否到尾部。

网络请求

既然是网络资源文件,使用上面的函数,无非都要发起 HTTP 请求。既然是网络请求,何不把这个功能交给 cURL 呢?这样对于请求头,请求体,响应体等等全程 HTTP 环节,都可以在程序内操作,容错性肯定不差。

下面我们使用 cURL 库进行文件请求操作:

如果是小小的资源文件,下载起来不费时间,也不会阻碍接下来的流程。如果是超大文件,费时间,而且还可能中断,有没有断点续传?有没有自动压缩?这都是问题。

所以,使用网络请求下载大文件,这已经超出了 PHP 内置函数的范畴。我们需要功能更为强大的下载器,多资源,多线程,断线续传,自动重试。

写在最后

本文通过3中方法对比了实现小文件下载的功能,各有优劣,根据不同的场景需要开发者做出适当的选择。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

展开
收起

PHPStorm安装配置小经验

PHPStorm安装配置小经验,由于PHPStorm软件功能十分强大,但是国内使用的人口还不是很多,由于是在配置PHPStorm方面,经常会遇到一些问题,此贴专门用于解决此问题。

PHPStorm软件功能十分强大,可以支持很多语言,而且智能性非常高。但是国内使用的人口还不是很多,由于是在配置PHPStorm方面,经常会遇到一些问题,此贴专门用于解决此问题。

问题1-如何新建PHPStorm工程选择File-New Project,应该是所以程序的经典路径

问题2-如何运行PHPStorm程序选择对应需要运行的文件,点击右键,出现下拉菜单,选择Run这个文件或者程序

问题3-PHPStorm解释器找不到刚刚安装好的PHPStorm软件,默认是没有配置PHPStorm解释器,没有PHPStorm解释器的话,PHP程序是无法直接在PHPStorm里面运行看到效果的。所以必须专门配置一把。配置路径:File-Settings-PHP,选中到PHP文件安装的最外层

问题4-1配置PHP5.6.6支持Mysql当前PHP和Mysql是一对好基友,由于PHP自身的封装,调用Mysql十分方便。但是对于PHP5.6.6服务器还是默认不支持的。具体原因不详,需要自己开方此部分功能。具体操作步骤如下:2-1将php.ini-development改为php.ini2-2将extension_dir = "D:/Program Files/PHP/php-5.6.6-Win32-VC11-x64/ext"

2-3将extension=php_mysql.dllextension=php_mysqli.dll现在最好用mysqli驱动,不再用mysql驱动对应第三个图2-4重启即可支持

展开
收起

php开发小技巧:分享一段对接收数据进行过滤防止XSS的代码

今天在阅读源码时,看到一段代码,主要是对接收的参数进行过滤处理,防止XSS(跨站脚本攻击),写得很简洁,有必要跟大家分享一下,具体代码如下:

上面的代码,第3行是接收用户请求的数据,返回$input数组,第5行之后是对$input进行处理过滤掉html与php代码,这里用到了数组函数array_walk_recursive,对数组$input的值利用回调函数进行递归处理,同时利用引用传值,最终改变$input数组的值。

array_walk_recursive

用法:

示例:

若该文有助于你,可以关注一下“小瑾笔记”,坚持原创,分享技术,共同进步。

展开
收起