编程语言 - PHP
环境搭建
Window7+Apache24+PHP7. Apache24配置
LoadModule php7_module "D:/SoftWare/php-7.2.21-Win32-VC15-x64/php7apache2_4.dll"
PHPIniDir "D:/SoftWare/php-7.2.21-Win32-VC15-x64/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html
AddType application/pdf .pdf
LoadModule php7_module modules/libphp7.so
DirectoryIndex index.php index.htm index.html
数据类型
Boolean 布尔类型
Integer 整型
Float 浮点型
String 字符串
Array 数组
Object 对象
Resource 资源类型
NULL
Callback / Callable 类型
数据库操作 - 数据库操作
连接
$con=new mysqli($host,$user,$password,$dbName); $con=mysqli_connect("localhost","root","root","test"); 连接报错处理
if ($link->connect_error) {
die("连接失败:" . $link->connect_error);
}
if (mysqli_connect_errno($con))
{
echo "连接 MySQL 失败: " . mysqli_connect_error();
}
增删改查
mysqli_fetch_assoc 获取首行数据
$row = mysqli_fetch_assoc($result);
echo $row['number1'];
echo $row['id'];
echo $row['number2'];"
mysqli_fetch_row
mysqli_fetch_array
mysqli_fetch_assoc
取多行数据
while($row=mysqli_fetch_assoc($result)){
$result_set[] = $row['Profile'];
}
插入
$sql = ""insert into tt values('$txt')"";
$result = mysqli_query($con,$sql);"
对insert结果判断
if($result){
echo ""1"";
}else{
echo mysqli_error();
}
数据库操作 - 连接封装
<?php
class db
{
public $host = "localhost";
public $username = "root";
public $password = "root";
public $dbname = "test"; public function Query($sql,$type=)
{
$db = new mysqli($this->host,$this->username,$this->password,$this->dbname);
$r = $db->query($sql);
if($type == "")
{
return $r->fetch_all();
}
else
{
return $r;
}
} } ?> 使用(按列遍历数据,此处为三列数据):
<?php
include("db.class.php");
$db=new db(); $sql = "select * from user";
$arr=$db->Query($sql); foreach($arr as $v)
{
echo "
<tr>
<td>{$v[]}</td>
<td>{$v[]}</td>
<td>{$v[]}</td>
</tr>
";
} ?>
文件处理 - 写入数据
file_put_contents('test.txt','aas');
文件处理 - 打开文件
fopen
写入 xml 文件
<?php
/**
* function:使用字符串方式写XML文件
* author:JetWu
* date:2016.12.03
**/
$mysqli = mysqli_connect('localhost', 'root', 'root', 'test');
if(mysqli_connect_errno())
die('database connect fail:' . mysqli_connect_error()); $sql = 'select * from tt order by starttime';
$res = mysqli_query($mysqli, $sql);
$study = array();
while($row = mysqli_fetch_array($res)) {
$study[] = $row;
}
//XML标签配置
$xmlTag = array(
'starttime',
'endtime',
'school'
); $str = "<studentcareer>\n";
foreach($study as $v) {
$str .= "\t<period>\n";
foreach($xmlTag as $x) {
$str .= "\t\t<".$x.">" . $v[$x] . "</".$x.">\n"; }
$str .= "\t</period>\n";
}
$str .= '</studentcareer>'; $file = './write_str.xml';
file_put_contents($file, $str);
XML 字符串载入对象
$data = simplexml_load_string($xml); -返回对象
Cookie处理
cookie(setcookie(name,value,expire,path,domain,secure)) 服务端创建,客户端保存(浏览器缓存中-未设置过期时间;硬盘-设置了过期时间),有长度限制
setcookie("unameck",$user); cookie创建 "创建一个数组 cookie:
<?php
setcookie(""cookie[three]"",""cookiethree"");
setcookie(""cookie[two]"",""cookietwo"");
setcookie(""cookie[one]"",""cookieone"");
// print cookies (after reloading page)
if (isset($_COOKIE[""cookie""]))
{
foreach ($_COOKIE[""cookie""] as $name => $value)
{
echo ""$name : $value <br />"";
}
}
?>"
echo $_COOKIE['unameck'];
setcookie ("TestCookie", "", time() - ); cookie删除
变量
empty($user) or empty($pwd) 非空判断
echo '<br/>'; 换行
Token处理
token "cookie+token -》安全保证
防cookie被串改(cookie欺骗、cookie劫持)
避开同源策略。
避免 CSRF 攻击。
无状态的、可以在多个服务间共享。"
.防止表单重复提交
.anti csrf攻击(跨站点请求伪造)
Session处理
session "选择使用cookie而不是用session的原因:在一些大型的应用中,服务器可能不止一台,所以,无法知道,用户注册的session保存在哪台服务器上。
但是,记住一点就是,session可以保存在memcached中。这里需要修改PHP.INI配置文件"
函数
eval
eval("echo 'hello world';"); 相当于echo str / 这里str后面需要有分号
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) 验证电子邮件地址
停止脚本
die('str')/exit()
转义函数
mysql_real_escape_string() 受影响字符:\x00 \n \r \ ' " \x1a --成功,则该函数返回被转义的字符串。如果失败,则返回 false
magic_quotes_gpc() magic_quotes_gpc=On(php<.0的版本默认为on)的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线()与 NUL(NULL 字符)等字符都会被加上反斜线\ stripslashes() --添加/删除反斜线\ addslashes() #get/post/cookie中的(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)等字符都会被加上斜线 ---斜线不插入到数据库中(可读取做二次渗透) htmlspecialchars() #将特殊字符用引用实体替换,如<script>alert('xss')</script>通过htmlspecialchars()过滤后为<script>alert('xss')</script> set_magic_quotes_runtime() #用来设置php.ini文件中的magic_quotes_runtime值,当遇到反斜杆(\)、单引号(')、双引号(")这样一些的字符定入到数据库里,又不想被过滤掉,使用这个函数,将会自动加上一个反斜杆(\),保护系统和数据库的安全。0和false表示关闭本功能,1和true表示打开本功能。当magic_quotes_runtime打开时,所有外部引入的数据库资料或者文件等都会自动转为含有反斜线溢出的资料(HP5.3后此特性(set_magic_quotes_runtime())已经关闭,而且在PHP6中已经完全移除此特性)
文件包含函数
allow_url_fopen
allow_url_include
都为ON —》则文件包含函数是可以加载远程文件的 PHP5.2开始allow_url_include就默认为Off,而allow_url_fopen一直是On
字符处理函数
把所有字符转换为小写 <?php echo strtolower("Hello WORLD."); ?>
字符串拼接 .= "$a = 'hello'; $b = 'world'; echo ""$a $b"";"
htmlentities 字符-》HTML实体 按照原来格式输出 echo "<pre>"; echo "</pre>";
去字符两遍空格/字符截断 trim " string trim ( string $str [, string $charlist ] ) - 去除字符串首尾处的空白字符(或者其他字符)
trim()函数当第二个参数为空时,默认去掉空格、制表符、换行符、回车符、垂直制表符等,当加入第二个参数时
) trim(' \""string\""', '\""sg'); // 最终输出:\""strin
) trim(' \""string\"" ', '\""sg'); // 最终输出:\""string\""
)trim('\""string\""', '\""sg'); // 最终输出:trin
所以trim()函数优先去掉字符首尾的空白字符,再过滤掉给定的要去除的字符(列表),也适用于ltrim()、rtrim()函数 字符替换 preg_replace "\\\或\\\\ \和\\即可 七个斜杠过滤三个斜杆和四个斜杠
外部命令执行函数
system
exec
passthru
shell_exec
反撇号 (`) 操作符
编程语言 - PHP的更多相关文章
- 我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没有一个简单的了解,或一个系统的入门学习.换句 ...
- Bash 脚本编程语言中的美学与哲学
我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨 Bash 脚本语言中的美学与哲学. 这不是一篇 Bash 脚本编程的教程,但是却能让人更加深入地了解 Bash ...
- [C#版本]有趣啊!各种编程语言实现 2 + 2 = 5
首页新闻里面那个 [新闻头条]有趣啊!各种编程语言实现 2 + 2 = 5 其他的就不评论的,但是其中C#版的 真是逗比啊...评论中各种吐槽有木有... static void Main (stri ...
- Atitit 编程语言编程方法的进化演进 sp COP ,AOP ,SOP
Atitit 编程语言编程方法的进化演进 sp COP ,AOP ,SOP 1.1. Sp oop>>COP ,AOP ,SOP1 1.2. Sp oop 结构化方法SP(Stru ...
- Atitit. 提升存储过程与编程语言的可读性解决方案v3 qc25.docx
Atitit. 提升存储过程与编程语言的可读性解决方案v3 qc25.docx 1. 大原则:分解+命名1 1.1. 命名规范1 1.2. 分层.DI和AOP是继OO1 1.3. 运算符可读性一般要比 ...
- 【转】最流行的编程语言JavaScript能做什么?
本文转自互联网! 首先很遗憾的一点是,“PHP虽然是最好的语言”,但是它不是最流行的语言. 对不起的还有刚刚在4月TIOBE编程语言排行榜上榜的各个语言: 你们都很棒,但是你们都担当不了这个大任. 开 ...
- 2017年"程序媛和工程狮"绝对不能忽视的编程语言、框架和工具
2017年"程序媛和工程狮"绝对不能忽视的编程语言.框架和工具 在过去的一年里,软件开发行业继续大踏步地向前迈进.回顾 2016 年,我们看到了更多新兴的流行语言.框架和工具, ...
- 中文编程语言Z语言开源正式开源!!!
(Z语言基于.NET环境,源码中有很多高技术的代码,让更多的人知道对大家有会有很好的帮助,请管理员一点要批准放在首页) 本人实现的中文编程语言Z语言现在正式开源,采用LGPL协议. 编译器核心的网址为 ...
- TKT中文编程语言简介
TKT中文编程语言简介 TKT语言是新型的类似自然语言的汉语编程语言. 它是基于新的语言设计思想创造的语言,和现存的易语言.习语言.O语言.汉编等中文编程语言没有关系. TKT语言特点一: 中文编程 ...
- 最流行的编程语言 JavaScript 能做什么?
此文转载oschina文章 首先很遗憾的一点是,“PHP虽然是最好的语言”,但是它不是最流行的语言. 同时对不起的还有刚刚在4月TIOBE编程语言排行榜上上榜的各个语言: 你们都很棒,但是你们都担当不 ...
随机推荐
- Vue组件定义
简介 组件是可复用的 Vue 实例. 本质上是一个对象,该对象包含data.computed.watch.methods.filters以及生命周期钩子等成员属性. 组件结构: { data(){ r ...
- Antd-react-mobile项目学习中遇到的问题记录(持续更新)
1.Error:The "injectBabelPlugin" helper has been deprecated as of v2.0. You can use customi ...
- vue.js(10)--案例--列表增加与删除
品牌管理案例 (1)bootstrip快速布局 <div class="app"> <div class="panel panel-primary&qu ...
- lLinux的常用命令
命令基本格式: 命令提示符:[root@localhost ~]# root 代表当前的登录用户(linux当中管理员账号是root) @ 无实际意义 localhost ...
- 2018-8-10-C#-ValueTuple-原理
title author date CreateTime categories C# ValueTuple 原理 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 ...
- uboot学习之五-----uboot如何启动Linux内核
uboot和内核到底是什么?uboot实质就是一个复杂的裸机程序:uboot可以被配置也可以做移植: 操作系统内核本身就是一个裸机程序,和我们学的uboot和其他裸机程序没有本质的区别:区别就是我们操 ...
- group_by
1.按照一个列或者多个列对数据分组 2.对每个组进行聚合操作 3. 对聚合后的结果进行判断 1. select avg(score) as score from teacher 2. select ...
- tuple写法
name = ("wen") 类型为strname = ("wen",) 类型为tuple
- man mkfs
---恢复内容开始--- MKFS(8) MKFS(8) NAME/名称 ...
- How To Create/Extend Swap Partition In Linux Using LVM
https://www.2daygeek.com/how-to-create-extend-swap-partition-in-linux-using-lvm/ BY RAMYA NUVVULA · ...