编程语言 - 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编程语言排行榜上上榜的各个语言: 你们都很棒,但是你们都担当不 ...
随机推荐
- C#学习——控件
Windows应用程序控件的基类是位于System.Windows.Forms命名空间的Control类. Control类定义了控件类的共同属性.方法和事件,其他的控件类都直接或间接到派生自这个类. ...
- Django 的 logging日志文件配置
在Django的settings配置文件里配置以下信息: import os BASE_LOG_DIR = os.path.join(BASE_DIR , "log") # log ...
- React框架新闻网站学习过程中遇到的错误总结
1.安装指定版本插件命令 npm install 插件名字@1.1.4(版本号) --save 或 yarn add 插件名字@1.1.4(版本号) --dev 2.Error:‘Link’ is n ...
- 浅析API和SDK
前言 最近有小伙伴咨询胡哥关于API和SDK的概念以及区别,今天给大家来阐述下我的理解,手动微笑.gif. API 1. 定义 API(Application Programming Interfac ...
- Python subprocess ffmpeg
# -*- coding:utf-8 -*- import os, sys, getopt import numpy as np import subprocess as sp import cv2 ...
- 前端 js javascript
新浪SAE公共资源 推荐指数★★★ 支持https http://lib.sinaapp.com/http://lib.sinaapp.com/js/jquery/2.0.3/jquery-2.0.3 ...
- mysql数据按条件导出
仅导出部分数据: mysqldump -hlocalhost -uuser -p --skip-triggers --no-create-info dbname tbname -w "id ...
- 爬虫技术:从sougou网站访问微信公众号的过程
一:分析过程:fidder + chrome开发者工具 1:输入nba跳转的页面,每页显示10条相关公众号的信息 2:分析网站得到每条标题的详情页链接地址在: 3,请求上图中的url,会返回一段js代 ...
- RestTemplate 发送post请求
springboot使用restTemplate post提交值 restTemplate post值 post提交有 FormData和Payload 两种形式: 第一种是formdata形式,在h ...
- 封装 pyinstaller -F -i b.ico excel.py
安装pywin32,可以参考<怎么给python安装pywin32模块?> 一定要注意对应的python版本,否则不能安装. 5怎么给python安装pywin32模块? 2 用命 ...