编程语言 - 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编程语言排行榜上上榜的各个语言: 你们都很棒,但是你们都担当不 ...
随机推荐
- java _static 关键字
• 在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量. • 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化, • 对于该类的所有对象来说,s ...
- SCUT - 365 - 鹏哥的数字集合 - wqs二分 - 斜率优化dp
https://scut.online/p/365 https://www.luogu.org/problemnew/solution/P2365 写这篇的时候还不是很明白,看一下这个东西. http ...
- python学习shutil模块的文件压缩和解压用法
shutil模块可以创建压缩包并返回文件路径,例如 zip,tar,下面详细其用法 base_name 压缩包的文件名,也可以是压缩包的路径,只是文件名时,则保存至当前目录,否则保存指定路径 data ...
- Python 批量文件下载
python文件 批量下载 .图片批量下载 ,批量请求.爬虫 #==================================================================== ...
- JavaScript —— 关于for in 与 for of 的区别
for in是ES5标准,遍历key,遍历的是数组的索引(即键名): for of是ES6标准,遍历value,遍历的是数组元素值: Object.prototype.objCustom = func ...
- tac反向显示文件内容
1.命令功能 tac是cat的反向拼写功能是反向显示文件内容.cat是从文件第一行开始读取文件输出,tac是从最后一行开始读取文件并进行反向输出. 2.语法格式 tac [option] [fil ...
- What are the differences between an LES-SGS model and a RANS based turbulence model?
The biggest difference between LES and RANS is that, contrary to LES, RANS assumes that \(\overline{ ...
- 【leetcode】301. Remove Invalid Parentheses
题目如下: 解题思路:还是这点经验,对于需要输出整个结果集的题目,对性能要求都不会太高.括号问题的解法也很简单,从头开始遍历输入字符串并对左右括号进行计数,其中出现右括号数量大于左括号数量的情况,表示 ...
- IO流之RandomAccessFile和File
通过学习一些经典案例来复习基础 ------------------------------------------------------------------------------------ ...
- intraweb首次与LayUI结合
intraweb可以说是Delphi Web开发的好帮手,但是自带的控件搭建页面,感觉不是那么美观,于是想引用一个UI框架,Delphi来提供后台访问,但是发现一个问题,如果intraweb用模版,L ...