phpphp教程

学习PHP的10个技巧

在开始学习PHP之前,花一些时间计划学习语言的方法可能是明智的。

学习过PHP的专业开发人员已经花费了大量时间来学习他们的技术。要模拟它们,您将需要确保有动力去做,并且理想地能够快速有效地学习PHP。学习方法越慢且效率越低,获得PHP开发工作或构建您所考虑的应用程序所花费的时间就越长。

缓慢而低效的学习方法的更糟后果是,您更有可能放弃学习!哈佛大学和麻省理工学院大学进行的研究发现,只有4%的注册在线课程的学生可以完成这些课程。

因此,我如何帮助您避免成为96%放弃的人中的另一个?

好吧,我整理了10条技巧列表,以帮助您学习PHP。这些技巧应有助于您有效地学习PHP,保持动力,并避免一些潜在的困难。

让我们开始吧!

1.确信要学习PHP

如果您是本文的初学者,那么您可能不太想学习哪种编程语言。尽管这不一定是问题,但可能会在以后导致出现问题,您会发现另一种编程语言更适合您的愿望。

PHP是Web开发中常用的服务器端编程语言。如果您在几个月后意识到自己真正想做的就是在Rockstar上工作并帮助构建下一版的侠盗猎车手,那么最好学习C等游戏开发中常用的编程语言或C ++。

学习PHP的原因很多,其中包括:

您想将WordPress技能提升到一个新的水平。截至2018年9月,所有网站中有7%使用WordPress。由于WordPress由PHP驱动,因此对PHP技能产生了巨大的需求。而且,如果您想使用其他内容管理系统,例如Joomla或Drupal,我很高兴地告诉您,它们也是用PHP构建的。

与其他编程语言相比,PHP被认为相对易于学习。

由于PHP是Web的本机,因此您可以比使用其他某些语言更快,更轻松地将简单项目放在网上,这意味着您将比自己查看工作更快地看到结果学习另一种语言。

因此,在开始学习PHP之前,请确保已考虑这些内容,以便可以确信PHP可以满足您的需求。

技巧2.请牢记您的项目

既然您知道了为什么要学习PHP,记住一个目标就可以使用它也很有用。学习PHP将是一个漫长的过程,并且出于最终目标的考虑,保持动力很容易。在线课程,通过学习PHP开发的基础知识来构建项目,从而使学习过程有趣且互动。

这是使学习过程有趣且相关的好方法,但更好的是牢记您的项目的想法。如果您牢记您的项目,那么如果您想将其应用到项目中,将会更有动力记住所学内容。

您将需要不断地练习新开发的PHP技能,通常最容易激发自己从事项目的动机。随着技能的提高,您甚至可以构建项目的不同版本。例如,您最初可以创建一个简单的联系人应用程序,该应用程序具有添加和删除联系人的基本功能。随着技能的发展,您可以将其连接到数据库。稍后,您可以添加更多高级功能,然后再将其投入使用并邀请您的朋友提交其详细信息。

在不知不觉中,您可能是世界上最大的社交网站之一,拥有超过10亿人口,并创造了数十亿美元的广告收入。谁知道?

技巧3.首先学习HTML

虽然PHP是您第一种编程语言的不错选择,但它不应该是您进行Web开发的第一步。

如果您还没有学习过它,那么应该在开始学习PHP之前花一些时间来学习HTML。HTML是构成网页基础的标记语言,而不是编程语言。这意味着您编写的代码代表网页的基本元素,例如图像或文本。您无法使用标记语言对任何功能进行编程,这使得学习起来相对比较容易,并且还产生了对HTML之类的PHP之类的语言的需求,以使网站更加动态。

由于通常使用PHP使HTML动态化,因此HTML在PHP文档中很常见。HTML不仅会出现在大多数PHP应用程序中,而且还将成为有关PHP开发的许多教程和课程的一部分。这些教程大多数都只是假设您已经了解HTML。

因此,与其花时间去学习两者,不如花几个小时来学习HTML的基础知识。学习PHP需要花费数月的时间,但是学习HTML所需的时间则是几个小时。

技巧4.主动学习而非被动

使学习更有效的最好方法之一是主动学习而不是被动学习。被动学习意味着简单地观看/阅读/聆听和吸收信息。积极学习意味着在问题或项目中使用所学知识。

教育专业人士似乎一致认为主动学习策略比被动学习策略更好。唯一的问题是,创造主动学习体验通常比创造被动学习体验困难。

被动学习体验的一个示例是观看网上搜索的视频,视频中的讲师会通过幻灯片发声,解释了功能。不过,被动学习经验仍然有用。讲师可能会对您听说过的功能提供最佳解释。

这里的建议并不一定要完全避免被动学习的经历,而是要使他们变得主动。您可以在讲座中举例,然后自己写下来,进行修改,看看会发生什么。

秘诀5.不要害怕破坏事物

请谨慎使用此建议。如果您在现场站点上工作,那么故意破坏事物肯定不是最好的主意。如果您使用的是WordPress,通常建议不要将PHP文件留在WordPress核心中。不要破坏那些。

但是,在您创建的脱机项目文件或WordPress主题文件夹中的PHP文件中,打破常规并不是一个坏主意。将它们放回一起会学到很多东西。

此建议并不严格意味着您必须断开网站,而应避免担心它的发生。出错的地方通常是很好的学习经验。问题越大,您越会记住解决方案。

如果您对解决问题有两个想法,而第一个想法可行,请确保您也尝试第二个想法,而不是简单地前进。在Web开发中,通常有不止一种方法来解决问题。

技巧6.在PHP.ini中打开错误报告

如果您要破坏事情,确保启用错误报告可能是明智的。默认情况下可能会启用此功能,但是在某些情况下,当您断开PHP应用程序时,您只会看到空白屏幕。

要查看错误报告,请确保使用以下代码在php.ini文件中启用错误处理:

ini_set('display_startup_errors',1);

ini_set('display_errors',1);

error_reporting(-1);

这意味着,当您在代码中出错时,以下错误报告(缺少分号的结果)将至少返回一条有用的消息,以帮助您调试问题。

技巧7.注意语法

在您的编码教育和专业开发人员的生活中,您都会因语法错误而损失数小时。

语法错误仅表示您编写了PHP无法理解的内容。可能是因为您拼写的变量名称与创建变量时的拼写方式不同,或者忘记了在语句的末尾添加分号。您会忘记很多分号。

与PHP之类的语言相比,JavaScript之类的某些编程语言在使用分号时更为自由。在某些情况下,PHP可能也相当自由:例如,在某些情况下,不关闭PHP标记被认为是一种好习惯。在其他情况下,缺少一个分号将终止整个应用程序。

所以要非常 小心你的语法。在编程中,必须正确地拼写事物。

但是,了解语法错误的可能性很有用。它告诉我们您的程序不起作用时应首先查找的位置。在删除整个程序并重新开始之前,请检查语法错误。

技巧8.保持代码可读

当您学习编码时,您将从非常注意他们的代码演示的讲师那里学习。如果您不是…,您应该找其他教师。

起初,所有间距,凹痕和对齐方式似乎都是肤浅的。如果代码有效,那么对不对?谁在乎间隔?

好吧,当您犯了一个错误或返回到您之前编写的代码的审阅时,您会在意的。更糟糕的是,如果您的同事不得不使用您无法保持可读性的代码,您将更加关心,因为您的同事会讨厌您。

编写正确的代码对于处理技巧7中讨论的错误至关重要。如果将所有代码放在一行上,计算机将可以正常读取它。但是,如果您错过了分号,则您或其他人必须发现它。

哪个示例更容易发现缺失的分号?

要么

如果不太明显,它是相同的代码。唯一的区别是间距。

该代码的第一个版本可以更轻松地在每行的结尾处发现分号,同时使HTML span标记与打开(<?PHP)和关闭(?>)PHP标记对齐,这也有助于识别是否只是忘记添加结束标记。

第二个版本只是将所有代码混合在一起。现在,您必须检查所有代码以查找可能缺少的分号,而不仅仅是快速查看行尾。PHP标记在哪里开始和结束?它们在第一版中都有它们的行,但是您必须扫描第二版代码中从开始标记到结束标记的所有代码,以检查它们是否都在那里。

除了保持代码干净,清晰和可读之外,还请确保使用注释来提醒自己在编写代码时的想法。

注释是PHP解释器忽略的文本行。您可以通过在行首添加两个正斜杠来将文本转换为注释。

// 像这样。

计算机完全忽略了您的注释,使它们看起来毫无意义。但是,尽管代码是用于计算机的,但是注释是针对人类的。特别是如果您编写复杂的内容,则注释对于将来其他人或您自己了解或记住您的程序的用途非常有用。例如,下面我在此WordPress自定义查询上方写了一条评论,以提醒我学习时的含义。注释是以//开头的灰色文本。

评论可以是一种很好的方式,可以给自己留下一些笔记,以帮助您记住做事的方式。作为新手,您很可能会在将来重新访问现在编写的代码。当有人要求您构建以前构建的东西时,参考以前编写和理解的代码比尝试了解您通过百度找到的其他示例更容易使用。

好吧,只有当您的代码干净,清晰,易于理解并充分利用注释时,它才会更容易。

秘诀9.尝试自己解决问题

当您遇到问题时,常见的反应是立即寻求帮助。

现在,寻求帮助没有错。很多人会说应该鼓励这样做。但是,如果您一遇到困难就向某人询问,那么您将无法像在自己发现问题的情况下那样好地学习本课程。现在是时候提出问题了。

在现实生活中,这似乎是一个编码新手训练所面临的问题,而不是在线上,因为在新手训练营中,您可以举手并向教员寻求帮助。但是,像BitDegree上的课程一样,您可以选择发送关于该课程中任何讲座的反馈,以便教师可以帮助您解决遇到的任何问题。

但是请记住,当您学习PHP时,您并没有付出任何努力–您不是第一个学习这种编程语言的人。

很多人在您之前走过,他们的问题遍布整个互联网。也有很多人想要帮助,他们的答案也遍布整个互联网。

特别是如果您即将开始学习PHP基础知识,那么其他人之前从未遇到过您的问题的可能性极低。因此,如果您想找到PHP遇到的任何问题的答案,则只需执行解决所有其他问题的方法即可。去谷歌上查询!

在搜索结果的顶部,您会发现有人可能在百度知道或者知乎上发布了与您的问题极为相似的问题。

如果找不到与您的问题相匹配的内容,则还应该记住,PHP和其他所有编程语言一样,都有大量的文档来帮助其用户了解如何使用PHP。如果手册有点让人不知所措,则可以在BitDegree或者百度上获得更易理解的PHP知识库。

技巧10.了解行话

在学习PHP的初期,您可能会遇到的一个困难是讲师或说明中使用的技术语言。

一位优秀的讲师将可以用简单的英语向您解释PHP基础。但是一旦您进入更高级的主题,讲师将需要使用更多的技术语言来描述更复杂的概念。

重要的是,您必须充分学习新词汇中的单词,以便能够理解可能在其中使用两个或两个以上专业术语的句子。不幸的是,除非您能够理解PHP背后的困难概念,否则您不可能完全理解如何使用PHP,这意味着学习技术语言。

一个简单的例子就是理解“如何将变量作为参数传递给函数”。

结论

本指南中的技巧将帮助您准备成为一名更好的PHP学生,并确保正确地进行学习,从而提高学习效率。尽管这些技巧中的大多数都是针对那些开始学习如何使用PHP的技巧的,但对于那些对PHP教育更高级的人来说,这些技巧将被证明是有用的。

但是无论如何,既然您已经进行了一些研究,那么您可能已经选择学习PHP。如果是这样,那么只剩下一件事要做……

是时候学习PHP了!

就像我们选择学习的任何东西一样,这可能是一个艰巨的过程。但是对于许多人来说,这是一条美丽的道路,而在结束时却有着巨大的收获。坚持本指南中的,您会顺利进行的。

展开
收起

教程 | 如何搭建个人博客网站

大家好鸭,又是一年开学季。今天为大家带来一篇教程《如何搭建个人博客网站》,喜欢的同学可以研究一下。

前期准备:

1、一台云服务器

2、一个域名

3、一个博客网站模板

主要涉及知识点:linux基础命令,mysql基础操作

步骤

1、 服务器搭建

购买一台网络云服务器,可以考虑阿里云、腾讯云、百度云等,这里以阿里云服务器举例。

共享型价格在半年170元左右。不定期会有活动,首台半价等。

系统配置CentOs6.8系统

可在管理控制台查看配置购买的服务器

PS:腾讯云学生活动10元/月(服务器加存储加域名)

2、网络环境部署

购买完成后,在管理端后台更多设置里修改远程登录密码

重置密码是重置远程登录之后服务器的密码(用户名root)

两个都修改完成后就可以远程连接服务器啦

在安全组里添加访问规则,允许80,22端口访问

1)安装apache服务器

首先执行yum install httpd httpd-devel

需要确认的,填yes,以下同样

启动apache执行: /etc/init.d/httpd start

2)安装mysql服务

执行:yum install mysql mysql-server

启动mysql:/etc/init.d/mysql start

3)安装php

yum -y install php

4)安装php拓展

执行:yum -y install php-mysql php-gd php-imap php-ldap php-odbc php-mbstring php-devel php-soap php-cli php-pdo

yum -y install php-mcrypt php-tidy php-xml php-xmlrpc php-pear

yum -y install php-pecl-memcache php-eaccelerator

然后重启httpd服务 service httpd restart

然后进入默认网站目录cd /var/www/html/

然后touch index.php

然后编辑一下添加如下php代码:

<?php

phpinfo();

?>

然后在浏览器输入你的服务器公网ip地址就可以看到如下页面哟,首先确认你的防火墙已经全部关闭了哦.

防火墙关闭命令

service iptables stop

然后关闭防火墙的开机启动chkconfig iptables off

同时开启httpd和mysql的开启启动

Chkconfig httpd on

Chkconfig mysqld on

接下来就可以去wordpress下载源码包了.

3、网站部署

1) 下载WordPress安装包,上传到服务器

这是我下载的wordpress安装包,上传工具使用的是FileZilla Client

运行FileZilla Client,输入地址,账号,远程登录密码,端口22,快速连接

也可以通过文件>站点管理器>新建站点添加

连接成功后,将下载的wordpress压缩吧拖到右边/var/www/html文件夹下

好的上传完毕。

2) 解压安装包,配置wordpress

好的看到我们的源码包了,现在来解压他.

发现没有解压命令,我们来安装一下.

执行:yum install zip

执行:yum install unzip

安装完成后,我们来解压缩wordpress

进入/var/www/html目录

执行:cd /var/www/html

解压缩安装包:unzip –x 安装包名称

这就解压完毕了

这样咱们就只剩下安装了.

3)安装wordpress程序

进入mysql为wordpress创建一个数据库

执行:mysql -u root –p

需要创建数据库密码

执行:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码')

创建数据库执行:create database wordpress;

在网页上输入公网地址,进入wordpress配置页面,填写好如下表单

发现我们不能安装,

因为没有写权限,添加权限即可

在服务器上执行:cd /var/www/

chmod –R 777 html

再回到网页,刷新

这样就安装好了.

这样你就可以进入你的博客,写你的文章了.

至此,安装完成,WordPress里面有很多模板,可以直接更改你博客的主题风格,十分方便。

如果你想把网站挂出来让朋友来访问,那么你就还需要最后一步,去云购买一个域名,进行一下地址解析。

展开
收起

认识PHP,快速搭建PHP环境

织梦DEDECMS建站学习02

1.认识php

PHP:

PHP: Hyper text Preprocessor"的缩写,即“超文本预处理器。PHP是一种功能强大,并且简便易用的脚本语言,它可嵌入到HTML中,尤其适合web开发。

起源:

1994年Rasmus创造了PHP (这完全是Rasmus的个人爱好)

1997年,Zeey、Andi重写了解析器,发展到php3。 (有了队伍)

2000年5月,php4发布,它使用了Zend引擎(Zeey+Andi)。(有 了标准)

2004年7月,php5正式发布。(飞速发展,不断创新)

PHP的最版本为PHP 7. X。

PHP的官方网址下载。

特点:

PHP是免费的;

效率高: PHP消耗相当少的系统资源;

易学易用,功能强太;

跨平台的。可以运行在UNIX、LINUX、WINDOWS下;

嵌入HTML:因为PHP可以嵌入HTML语言,学习起来并不困难;

PHP5是面向对象的。

... ...

2.PHP优势

PHP优势

3. PHP运行环境

PHP运行前提:1.操作系统,2.WEB服务器,3.PHP组件

WAMP: Windows+Apache+Mysql+Php

WNMP: Windows+Nginx+Mysql+Php

LAMP: Linux+Apache+Mysql+Php

LNMP: Linux+Nginx+Mysql+Php

Apache HtTP Server (简称Apache)是Apache软件基金会的一个开放源码的网页服务器。Apache是世界使用排名第一的Web服务器软件。 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

Nginx("enginex")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的Web和反向代理服务器,也是一IMAP/POP3/SMTP代理服务器。在高连接并发的情况下,Nginx是Apache服 务器不错的替代品。

安装了PHP环境之后,Apache/Nginx才可能运行PHP文件。

新手安装过程推荐组合包安装!

官方网站:自行下载

注意:我们还可以安装zend引擎:用于php优化。

windows下安装:

推荐软件: phpstudy 官网下载

phpstudy

4.第一个PHP页面

1)路径:www下新建目录文件,用于区别不同项目

目录

2)代码:

代码

3)访问:浏览器输入本机网址路径:127.0.0.1/stedy/index.php

网址

最终执行结果!

展开
收起

PHP环境部署伪静态教程

PHP伪静态

前言

在用PHP语言开发网站的时候,伪静态是一个绕不过去的一道坎,在PHP中设置伪静态对于老手来说是手到擒来,但是对于新手来说稍微有点难度,还没有掌握的小伙伴们不要着急,下面跟着小编一起来学习吧。

正文

一、Apache的伪静态配置

1、网站根目录下需要有 .htaccess 文件,没有则自己创建一个,内容为

<IfModule mod_rewrite.c>  RewriteEngine on  RewriteCond %{REQUEST_FILENAME} !-d  RewriteCond %{REQUEST_FILENAME} !-f  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]  </IfModule>如果你的apache是fastcgi模式下,则需要修改

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]替换成  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

2、在apache的配置文件httpd.conf中查找 : LoadModule rewrite_module modules/mod_rewrite.so 将前面的#去掉,假如没有这段内容,则需要手动加上3、在apache的配置文件httpd.conf中查找所有的 AllowOverride None,将 None 都替换成 All . 保存文件 并重启apache服务。

二、Nginx的伪静态配置找到nginx的配置文件 nginx.conf, 在里面的 server{ } 里增加以下内容

location / {if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }

重启nginx即可生效

三、IIS的伪静态配置如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:

RewriteRule (.*)$ /index\.php\?s=$1 [I]

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:

<rewrite><rules>  <rule name="OrgPage" stopProcessing="true">  <match url="^(.*)$" />  <conditions logicalGrouping="MatchAll">  <add input="{HTTP_HOST}" pattern="^(.*)$" />  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />  </conditions>  <action type="Rewrite" url="index.php/{R:1}" />  </rule>  </rules>  </rewrite>

结尾

通过本文的学习各位小伙伴们对于PHP中如何设置伪静态是不是学会了,那好以后还需要小伙伴们自己多多练习探索啊。

展开
收起

手把手教大神,PHP开发者不得不学的24个超级PHP库

作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库。下面是我曾经遇到过最酷的24个库。你最喜欢的库没有在这个列表里面?那就在评论中分享吧!1. Dispatch – 微框架Dispatch是一个PHP小框架。它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序。这对API、简单的站点或原型来说是完美的。

//包含库

include 'dispatch.php';

// 定义你的路由

get('/greet', function () {

//渲染视图

render('greet-form');

});

//post处理

post('/greet', function () {

$name = from($_POST, 'name');

// render a view while passing some locals

render('greet-show', array('name' => $name));

});

// serve your site

dispatch();

你可以匹配特定类型的HTTP请求和路径,渲染视图或做更多事情。如果你合并Dispatch和其他框架,那你就可以拥有一个相当强大并且轻量级的程序!2. Klein – PHP快如闪电的路由Klein是另一款针对PHP5.3+版本的轻量级路由库。虽然它有一些比Dispatch冗长的语法,但它相当快。这有一个例子:

respond('/[:name]', function ($request) {

echo 'Hello ' . $request->name;

});

你也可以定制来指定HTTP方法和使用正则表达式作为路径。

respond('GET', '/posts', $callback);

respond('POST', '/posts/create', $callback);

respond('PUT', '/posts/[i:id]', $callback);

respond('DELETE', '/posts/[i:id]', $callback);

//匹配多种请求方法:

respond(array('POST','GET'), $route, $callback);

//你或许也想在相同的地方处理请求

respond('/posts/[create|edit:action] /[i:id] ', function ($request, $response) {

switch ($request->action) {

// do something

}

});

对于小型项目来说这是很棒的,但当你把一个像这样的库用于大型应用时,你不得不遵守规矩,因为你的代码可能很快就变得不可维护。所以你最好搭配一个像Laravel或者CodeIgniter这样完全成熟的框架。3. Ham – 带缓存的路由库Ham也是一款轻量级的路由框架,但是它利用缓存甚至获得了更快的速度。它通过把任何I/O相关的东西缓存进XCache/APC。下面是一个例子:

require '../ham/ham.php';

$app = new Ham('example');

$app->config_from_file('settings.php');

$app->route('/pork', function($app) {

return "Delicious pork.";

});

$hello = function($app, $name='world') {

return $app->render('hello.html', array(

'name' => $name

));

};

$app->route('/hello/<string>', $hello);

$app->route('/', $hello);

$app->run();

这个库要求你至少安装了XCache和APC其中的一个,这可能意味着,在大多数主机提供商提供的主机上它可能用不了。但是如果你拥有一个安装它们其一的主机,或者你可以操控你的web服务器,你应该尝试这款最快的框架。4. Assetic – 资源管理Assetic是一个PHP的资源管理框架,用于合并和减小了CSS/JS资源。下面是例子。

use Assetic\Asset\AssetCollection;

use Assetic\Asset\FileAsset;

use Assetic\Asset\GlobAsset;

$js = new AssetCollection(array(

new GlobAsset('/path/to/js/*'),

new FileAsset('/path/to/another.js'),

));

//当资源被输出时,代码会被合并

echo $js->dump();

以这种方式合并资源是一个好主意,因为它可以加速站点。不仅仅总下载量减小了,也消除了大量不必要的HTTP请求(这是最影响页面加载时间的两件事)5. ImageWorkshop – 带层的图片处理ImageWorkshop是一个让你操控带层图片的开源库。借助它你可以重定义尺寸、裁剪、制作缩略图、打水印或做更多事情。下面是一个例子:

// 从norway.jpg图片初始化norway层

$norwayLayer = ImageWorkshop::initFromPath('/path/to/images/norway.jpg');

// 从watermark.png图片初始化watermark层(水印层)

$watermarkLayer = ImageWorkshop::initFromPath('/path/to/images/watermark.png');

$image = $norwayLayer->getResult(); // 这是生成的图片!

header('Content-type: image/jpeg');

imagejpeg($image, null, 95); // We choose to show a JPG with a quality of 95%

exit;

ImageWorkshop被开发用于使一些PHP中最通用的处理图片的案例简化,如果你需要一些更强大的东西,你应该看下Imagine library!6. Snappy – 快照/PDF库Snappy是一个PHP5库,可以生成快照、URL、HTML、PDF。它依赖于wkhtmltopdf binary(在Linux,Windows和OSX上都可用)。你可以像这样使用它们:

require_once '/path/to/snappy/src/autoload.php';

use Knp\Snappy\Pdf;

//通过wkhtmltopdf binary路径初始化库

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');

//通过把Content-type头设置为pdf来在浏览器中展示pdf

header('Content-Type: application/pdf');

header('Content-Disposition: attachment; filename="file.pdf"');

echo $snappy->getOutput('http://www.github.com');

要记得,你的主机提供商可能不允许调用外部二进制程序。7. Idiorm – 轻量级ORM库Idiorm是个人之前在本网站教程中用过最喜爱的一款。它是一款轻量级的ORM库,一个建立在PDO之上的PHP5查询构造器。借助它,你可以忘记如何书写乏味的SQL:

$user = ORM::for_table('user')

->where_equal('username', 'j4mie')

->find_one();

$user->first_name = 'Jamie';

$user->save();

$tweets = ORM::for_table('tweet')

->select('tweet.*')

->join('user', array(

'user.id', '=', 'tweet.user_id'

))

->where_equal('user.username', 'j4mie')

->find_many();

foreach ($tweets as $tweet) {

echo $tweet->text;

}

Idiorm有一个姊妹库叫Paris,Paris是一个基于Idiorm的Active Record实现。8. Underscore – PHP的工具腰带Underscore是原始Underscore.js的一个接口 – Javascript应用的工具腰带。PHP版本没有让人失望,而且支持了几乎所有原生功能。下面是一些例子:

__::each(array(1, 2, 3), function($num) { echo $num . ','; }); // 1,2,3,

$multiplier = 2;

__::each(array(1, 2, 3), function($num, $index) use ($multiplier) {

echo $index . '=' . ($num * $multiplier) . ',';

});

// prints: 0=2,1=4,2=6,

__::reduce(array(1, 2, 3), function($memo, $num) { return $memo + $num; }, 0); // 6

__::find(array(1, 2, 3, 4), function($num) { return $num % 2 === 0; }); // 2

__::filter(array(1, 2, 3, 4), function($num) { return $num % 2 === 0; }); // array(2, 4)

这个库也支持链式语法,这使得它更为强大。9. Requests – 简单HTTP请求Requests是一个简化HTTP请求的库。如果你和我一样,几乎从来都记不住传递给Curl的各种各样的参数,那么它就是为你准备的:

$headers = array('Accept' => 'application/json');

$options = array('auth' => array('user', 'pass'));

$request = Requests::get('https://api.github.com/gists', $headers, $options);

var_dump($request->status_code);

// int(200)

var_dump($request->headers['content-type']);

// string(31) "application/json; charset=utf-8"

var_dump($request->body);

// string(26891) "[…]"

借助这个库,你可以发送HEAD、GET、POST、PUT、DELTE和PATCH HTTP请求,你可以通过数组添加文件和参数,并且可以访问所有相应数据。10. Buzz – 简单的HTTP请求库Buzz是另一个完成HTTP请求的库。下面是一个例子:

$request = new Buzz\Message\Request('HEAD', '/', 'http://google.com');

$response = new Buzz\Message\Response();

$client = new Buzz\Client\FileGetContents();

$client->send($request, $response);

echo $request;

echo $response;

因为它缺乏文档,所以你不得不阅读源码来获知它支持的所有参数。11. Goutte – Web抓取库Goutte是一个抓取网站和提取数据的库。它提供了一个优雅的API,这使得从远程页面上选择特定元素变得简单。

require_once '/path/to/goutte.phar';

use Goutte\Client;

$client = new Client();

$crawler = $client->request('GET', 'http://www.symfony-project.org/');

//点击链接

$link = $crawler->selectLink('Plugins')->link();

$crawler = $client->click($link);

//使用一个类CSS语法提取数据

$t = $crawler->filter('#data')->text();

echo "Here is the text: $t";

12. Carbon – DateTime 库Carbon 是 DateTime API 的一个简单扩展。

printf("Right now is %s", Carbon::now()->toDateTimeString());

printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver'));

$tomorrow = Carbon::now()->addDay();

$lastWeek = Carbon::now()->subWeek();

$nextSummerOlympics = Carbon::createFromDate(2012)->addYears(4);

$officialDate = Carbon::now()->toRFC2822String();

$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;

$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');

$endOfWorld = Carbon::createFromDate(2012, 12, 21, 'GMT');

//总是以UTC对比

if (Carbon::now()->gte($endOfWorld)) {

die();

}

if (Carbon::now()->isWeekend()) {

echo 'Party!';

}

echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2分钟之前'

13. Ubench – 微型基准库Ubench 是一个用于评测PHP代码的微型库,可监控(代码)执行时间和内存使用率。下面是范例:

use Ubench\Ubench;

$bench = new Ubench;

$bench->start();

//执行一些代码

$bench->end();

//获取执行消耗时间和内存

echo $bench->getTime(); // 156ms or 1.123s

echo $bench->getTime(true); // elapsed microtime in float

echo $bench->getTime(false, '%d%s'); // 156ms or 1s

echo $bench->getMemoryPeak(); // 152B or 90.00Kb or 15.23Mb

echo $bench->getMemoryPeak(true); // memory peak in bytes 内存峰值

echo $bench->getMemoryPeak(false, '%.3f%s'); // 152B or 90.152Kb or 15.234Mb

//在结束标识处返回内存使用情况

echo $bench->getMemoryUsage(); // 152B or 90.00Kb or 15.23Mb

(仅)在开发时运行这些校验是一个好主意。14. Validation – 输入验证引擎Validation 声称是PHP库里最强大的验证引擎。但是,它能名副其实吗?看下面:

use Respect\Validation\Validator as v;

//简单验证

$number = 123;

v::numeric()->validate($number); //true

//链式验证

$usernameValidator = v::alnum()->noWhitespace()->length(1,15);

$usernameValidator->validate('alganet'); //true

//验证对象属性

$user = new stdClass;

$user->name = 'Alexandre';

$user->birthdate = '1987-07-01';

//在一个简单链中验证他的属性

$userValidator = v::attribute('name', v::string()->length(1,32))

->attribute('birthdate', v::date()->minimumAge(18));

$userValidator->validate($user); //true

你可以通过这个库验证你的表单或其他用户提交的数据。除此之外,它内置了很多校验,抛出异常和定制错误信息。15. Filterus – 过滤库Filterus是另一个过滤库,但它不仅仅可以验证,也可以过滤匹配预设模式的输出。下面是一个例子:

$f = Filter::factory('string,max:5');

$str = 'This is a test string';

$f->validate($str); // false

$f->filter($str); // 'This '

Filterus有很多内建模式,支持链式用法,甚至可以用独立的验证规则去验证数组元素。16. Faker – 假数据生成器Faker 是一个为你生成假数据的PHP库。当你需要填充一个测试数据库,或为你的web应用生成测试数据时,它能派上用场。它也非常容易使用:

//引用Faker 自动加载器

require_once '/path/to/Faker/src/autoload.php';

//使用工厂创建来创建一个Faker\Generator实例

$faker = Faker\Factory::create();

//通过访问属性生成假数据

echo $faker->name; // 'Lucy Cechtelar';

echo $faker->address;

// "426 Jordy Lodge

// Cartwrightshire, SC 88120-6700"

echo $faker->text;

// Sint velit eveniet. Rerum atque repellat voluptatem quia ...

只要你继续访问对象属性,它将继续返回随机生成的数据。17. Mustache.php – 优雅模板库Mustache是一款流行的模板语言,实际已经在各种编程语言中得到实现。使用它,你可以在客户端或服务段重用模板。 正如你猜得那样,Mustache.php 是使用PHP实现的。

$m = new Mustache_Engine;

echo $m->render('Hello {{planet}}', array('planet' => 'World!')); // "Hello World!"

建议看一下官方网站Mustache docs 查看更多高级的例子。18. Gaufrette – 文件系统抽象层Gaufrette是一个PHP5库,提供了一个文件系统的抽象层。它使得以相同方式操控本地文件,FTP服务器,亚马逊 S3或更多操作变为可能。它允许你开发程序时,不用了解未来你将怎么访问你的文件。

use Gaufrette\Filesystem;

use Gaufrette\Adapter\Ftp as FtpAdapter;

use Gaufrette\Adapter\Local as LocalAdapter;

//本地文件:

$adapter = new LocalAdapter('/var/media');

//可选地使用一个FTP适配器

// $ftp = new FtpAdapter($path, $host, $username, $password, $port);

//初始化文件系统

$filesystem = new Filesystem($adapter);

//使用它

$content = $filesystem->read('myFile');

$content = 'Hello I am the new content';

$filesystem->write('myFile', $content);

也有缓存和内存适配器,并且随后将会增加更多适配器。19. Omnipay – 支付处理库Omnipay是一个PHP支付处理库。它有一个清晰一致的API,并且支持数十个网关。使用这个库,你仅仅需要学习一个API和处理各种各样的支付处理器。下面是一个例子:

use Omnipay\CreditCard;

use Omnipay\GatewayFactory;

$gateway = GatewayFactory::create('Stripe');

$gateway->setApiKey('abc123');

$formData = ['number' => '4111111111111111', 'expiryMonth' => 6, 'expiryYear' => 2016];

$response = $gateway->purchase(['amount' => 1000, 'card' => $formData]);

if ($response->isSuccessful()) {

//支付成功:更新数据库

print_r($response);

} elseif ($response->isRedirect()) {

//跳转到异地支付网关

$response->redirect();

} else {

//支付失败:向客户显示信息

exit($response->getMessage());

}

使用相同一致的API,可以很容易地支持多种支付处理器,或在需要时进行切换。20. Upload – 处理文件上传Upload是一个简化文件上传和验证的库。上传表单时,这个库会校验文件类型和尺寸。

$storage = new \Upload\Storage\FileSystem('/path/to/directory');

$file = new \Upload\File('foo', $storage);

//验证文件上传

$file->addValidations(array(

//确保文件类型是"image/png"

new \Upload\Validation\Mimetype('image/png'),

//确保文件不超过5M(使用"B","K","M"或者"G")

new \Upload\Validation\Size('5M')

));

//试图上传文件

try {

//成功

$file->upload();

} catch (\Exception $e) {

//失败!

$errors = $file->getErrors();

}

它将减少不少乏味的代码。21. HTMLPurifier – HTML XSS 防护HTMLPurifier是一个HTML过滤库,通过强大的白名单和聚集分析,保护你代码远离XSS攻击。它也确保输出标记符合标准。 (源码在github上)

require_once '/path/to/HTMLPurifier.auto.php';

$config = HTMLPurifier_Config::createDefault();

$purifier = new HTMLPurifier($config);

$clean_html = $purifier->purify($dirty_html);

如果你的网站允许用户提交 HTML 代码,不修改就展示代码的话,那这时候就是用这个库的时候了。22. ColorJizz-PHP – 颜色操控库ColorJizz是一个简单的库,借助它你可以转换不同的颜色格式,并且做简单的颜色运算

use MischiefCollective\ColorJizz\Formats\Hex;

$red_hex = new Hex(0xFF0000);

$red_cmyk = $hex->toCMYK();

echo $red_cmyk; // 0,1,1,0

echo Hex::fromString('red')->hue(-20)->greyscale(); // 555555

它已经支持并且可以操控所有主流颜色格式了23. PHP Geo – 地理位置定位库phpgeo是一个简单的库,用于计算地理坐标之间高精度距离。例如:

use Location\Coordinate;

use Location\Distance\Vincenty;

$coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit 茂纳凯亚峰

$coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit

$calculator = new Vincenty();

$distance = $calculator->getDistance($coordinate1, $coordinate2); // returns 128130.850 (meters; ≈128 kilometers)

它将在使用地理位置数据的app里出色工作。你可以试译 HTML5 Location API,雅虎的API(或两者都用,我们在weather web app tutorial中这样做了),来获取坐标。24. ShellWrap – 优美的命令行包装器借助 ShellWrap 库,你可以在PHP代码里使用强大的 Linux/Unix 命令行工具。

require 'ShellWrap.php';

use \MrRio\ShellWrap as sh;

//列出当前文件下的所有文件

echo sh::ls();

//检出一个git分支

sh::git('checkout', 'master');

//你也可以通过管道把一个命令的输出用户另一个命令

//下面通过curl跟踪位置,然后通过grep过滤’html’管道来下载example.com网站

echo sh::grep('html', sh::curl('http://example.com', array(

'location' => true

)));

//新建一个文件

sh::touch('file.html');

//移除文件

sh::rm('file.html');

//再次移除文件(这次失败了,然后因为文件不存在而抛出异常)

try {

sh::rm('file.html');

} catch (Exception $e) {

echo 'Caught failing sh::rm() call';

}

当命令行里发生异常时,这个库抛出异常,所以你可以及时对之做出反应。它也可以通过管道让你一个命令的输出作为另一个命令的输入,来实现更强的灵活性。

来自:kelinlin

展开
收起

为什么很多人学习PHP编程都喜欢自学成才?推荐几个php自学网站

PHP编程语言是目前编程语言中最热门的编程之一,PHP应用领域最多的是WEB开发,PHP和mysql结合可以做出完美的网站,目前大多WEB网站都会选择PHP开发,开源成本低,高效质量好。

学习PHP编程其实比较容易,如果你学过HTML、CSS、JavaScript等前端语言将会帮助更快了解和学习PHP编程,PHP主要是可以直接嵌入HTML开发。

很多新手PHP程序员都会选择自学PHP编程,首先,PHP配置环境很简单,有一键生成的开发集成环境,比如phpstudy,WampServer等。

其次,PHP语法简单容易掌握,如果你学过C语言或java编程,你就会知道PHP不需要记太多的东西,直接嵌入HTML页面开发。

PHP输出Hello World:

<!DOCTYPE html> <html> <body> <?php echo "Hello World!"; ?> </body> </html>

java输出Hello World:

publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello World"); }}

最后,学习PHP编程很快可以进入工作状态。PHP需要掌握技能并不是很多,开源代码很多都是直接复制别人的代码,所有的PHP源代码事实上都可以得到。

如果你目前正在自学PHP,这里推荐几个php自学网站:第一PHP社区(很多技术问题),PHP中文网(推荐新手教程),CSDN(技术大神文章,分享技术)、PHPChina开发者社区、

责任编辑:常青春科技

展开
收起

php入门教程:从0开始学php第一课 php是什么?

第一课 php是什么?

大家好,欢迎来到山鹰课堂,首先我自我介绍一下,本人89年,网名山鹰,山东临沂人,2010年北漂7个月,之后一直在临沂,目前在一家临沂本地电商公司做技术开发。我呢研究php到现在差不多10年的时间了,很久以前就想出一套适合新手入门的php教程,由于各种原因一直拖到现在。

在教程正式开始之前,给大家说一下学习php的各种疑虑。很多人说我没有任何基础我能学会吗?我不会英语我能学会吗?我数学不好我能学会吗 …… 这一些列的疑虑都不是问题,编程就是用来解决具体问题的,我们的教程会以具体的需求出发,步步深入。只要你会电脑基础操作,有一颗上进心就够了!学习的道路上免不了各种浮躁,希望大家可以静下心,踏踏实实地学下去。

phpshi'shen'm

在php的学习道路上,我觉得一切要从需求出发,如果一上来就开始各种理论学习,相信会有很多人坚持不下去,即便是硬撑着学下去,也会边学边忘没有任何效果。这也是我自己的亲身体会,所以本套教程会从实际需求出发,一步步引导初学者进入php的世界。

我给大家解释一下什么是从需求出发?

首先我们要明白php是什么,

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。

以上描述估计新手朋友也很难理解,所以我们干脆直接了解下php能干什么!

php能干什么!

php能开发出一个企业展示网站吗? 能!

php能开发出一个购物商城吗? 能!

php能开发出一个会员管理系统吗? 能!

……

以上就是具体的需求,如果今天第一课就教会大家怎么用php开发出一个企业网站显然是不可能因为需求太大,所以我们就把大需求拆成小需求,也就有了我们的第一个需求:

php能实现1+1等于2吗?

现在需求已经有了,下面就是怎么实现了,先来给大家看一下实现这个需求的php代码:

php演示dai'm

以上代码被执行后,会得出1+1=2的结果,也就实现了我们的第一个需求。

讲到这里相信大家脑袋里都会有一个疑问,代码有了,怎么运行呢?

好了,今天的教程就到这里,希望大家带着这个疑问好好的思考一下,或者是自行百度一下,这也是我们第一课的课后作业,下一课我们将解密php代码怎么运行、以及php运行环境的搭建!

希望我的教程能给大家的php学习之路带去帮助,谢谢大家,下节课我们再见!山鹰课堂,专注电脑知识、php编程、前端技术等教程分享,觉得教程有用的朋友点赞加关注,点关注,不迷路,一大波干货教程在路上!

展开
收起

PHP中“|”和“||”的简单比较

在PHP中“|”和“||”都是OR(或)运算符,那么它们之间有什么区别?下面本篇文章就来带大家认识一下运算符“|”和“||”,对它们进行简单比较,了解它们之间的区别。

运算符“|”

它是一个按位OR运算符,二元运算符;它对变量的位进行操作。如果有两个变量a,b,进行$a | $b;则是将把 $a 和 $b 中任何一个为 1 的位设为 1。

示例:

$a = 3; $b = 10; echo $a | $b; ?>

输出:

说明:

在上面的示例中,给定两个值,a = 3和b = 10;然后将这两个数字转换为二进制数,即a = 0011和b = 1010;最后应用OR(|)运算并计算$a | $b的值。

运算符“||”

这是一个逻辑OR运算符,布尔运算符;它对变量的布尔值进行操作。如果其中任何一个变量的布尔值为true,则$a || $b的值为1。

示例:

$a = 3; $b = 10; echo $a||$b; echo ''; if($a = 3 || $b = 0) echo '1'; else echo '0'; ?>

输出:

说明:

在上面的示例中,给定两个值,a = 3和b =10;因此变量a和变量b的布尔值都为true,则$a||$b的值为1;在if语句中,检查其中一个条件是否为真,因为变量a值被设置为3,布尔为true,因此执行“$a = 3 || $b = 0”的值为1。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

展开
收起

「PHP教程」语法及输出

PHP语法

PHP 脚本可以放在文档中的任何位置,以 “<?php ”开始,以“ ?>” 结束,也可以在PHP脚本中使用HTML标签等;

<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><h1>我的第一个 PHP 页面</h1><?php/** * Created by PhpStorm. * User: Lucifer * Date: 2019/7/8 * Time: 18:35 *///开始和结束标签中间可以书写想要展示的内容//PHP代码段可以嵌套在HTML中,也可以在PHP代码段中输出HTML语句echo "<div style='width: 250px;height:250px;border: 1px solid fuchsia;background-color: bisque'></div>";?></body></html>

运行结果:

PHP 中的代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来;

PHP 有两种注释方式:“//”用于单行注释,“/* */”为多行注释;

<?php//这里是我的单行注释 echo "这是枫哥哥的第一段PHP代码"; /* 我这里注释了多行, 在这段注释中的内容都不会显示在前台页面中 */?>

PHP的输出方式

PHP的基本输出方式有两种:echo 和 print。两种基本输出方式都可以在页面中输出内容,都是语言结构,使用的时候可以加上括号,也可以不用加括号: echo/print 或 echo()/print()。

<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><?phpecho "这是echo输出<br>";echo("这是echo()输出<br>");print "这是print输出<br>";print("这是print()输出<br>");?></body></html>

运行结果:

虽然看起来两种输出方式看起来没有区别,但是echo 输出的速度比 print 快, echo 没有返回值,可以输出一个或者多个字符串;print有返回值,值为1,只能输出一个字符串。

除了基本输出外,还可以使用 var_dump() 输出类型和值 和 var_export() 输出结构信息。

展开
收起

PHP免费学习网站大推荐

导语 : 这次带来的推荐是,“世界上最好的语言”PHP。PHP 的语法融合了各式各样语言的语法优点,结合自身独创的语法,以其高效率,简洁的特点而深受广大程序员的喜爱。现在我就带大家,来探索互联网深处,有哪些免费而优质的教程。

慕课网php入门篇

慕课网,可以说的算是一个耳熟能详的名字了,里面优质的教程不知有多少。这次我先给大家介绍的就是慕课网的视频教程,php入门篇。在这篇教程中,把php的基础教程都详尽的讲了出来。而学习到后面,还有php进阶篇。值得学习。

php中文网

php中文网是一个专门面向php学习热爱者的网站,比较权威。里面除了我推荐的免费文档教程,还有工具推荐,社区问答,热点新闻等等,可以说的算是非常全面了。推荐php学习爱好者在此长期发展。

w3c网站

说到文档教程,w3cschool当然是肯定又要讲的名字了。和以前讲的一样,w3c的教程适合在查阅的时候阅读,里面的教程广,但是讲的不详细。需要些耐心,当你全部读完的时候,相信你一定能收获颇多。

php100教程

这个网站可以说的上是一个非常小众的网站了,跟别的文档教程不同,它有很多函数库,适合学习在后面学习的时候阅读。如果这个你也能耐心的读完,那么你就可以将网站的一些小功能实现了。

php完全自学手册

阿里云大学,听名字就很厉害,哈哈。而这个php完全自学手册,非常不错,如果是第一次学习,建议可以先阅读这个教程,比较好理解。而且也非常全面,值得推荐。

展开
收起