webexam项目杂记2
strstr,stristr是返回匹配到的字符串,常规的字符串操作尽量避免使用正则,
strstr是返回从匹配字符(串)开始(包括该匹配字符串)到结束的(或开头的)字符串
而如果仅仅只是判断是否包含匹配字符串时,用strpos(比strstr更快捷),返回的位置索引是从0开始的,
如果是匹配开头,如strpos('abcde','a')
会返回0, 因此在判断是否匹配时要用=== 或!==来判断,而不要用== !=来判断
ini-get和ini_set只是对该脚本在运行时有效
error_log是手动写日志信息到文件,即使是在配置文件php.ini中关闭了日志功能errors_log=Off,这个语句也生效,也会写入消息.
关于服务器/php脚本/浏览器客户端的信息如操作系统,浏览器类型,浏览时间,ip地址,端口等等都 保存在$_SERVER变量和$_ENV中,重点是查这个变量.
php配置的安全模式
默认没有开启,用safe_mode=On开启
safe_mode_exec_dir= 表示只能执行这个目录下的exe程序
safe_mode_include_dir= 表示php的包含目录, 这个是linux下类似配置的包含文
open_basedir= 只能打开这个目录下的目录
disable_functions 这个列表中的函数不能被执行,主要是一些shell 函数,如phpinfo,system等
fopen(string $filename, string $mode ,...)
中的模式:
主要有6种:r,r+,w, w+,a,a+
记忆:
- 凡是+,表示读写, r表示只读, w和a表示写
- r/r+, 不创建文件, w和a要创建文件(当文件不存在时)
- w和a的区别: w的文件指针指向文件头并且将文件截为0(也就是要清空原文件),所以适合新创建或覆盖文件,类似于">"
- a的文件头指向文件结尾,所以适合追加文件内容,类似于">>".
- Windows系统文件路径要加双反斜杠,c:\wamp\www\foo.txt', 对于二进制文件要加'b'
写html始终要想到: html和php程序始终是放在web应用程序上,始终是在服务器上写的,程序是放在服务器上的
input的size和maxlength属性的区别?
size是指input的"外观",可以显示的有多少个字符,实际输入的字符不规定
maxlength则是限制你实际可以输入的字符个数.
通常size是可视化设计属性,应该用css来表示.
xhtml1-transitional.dtd应该作为一个字典来查询
其中的%ATTLIST应该作为书写属性的依据
如input的 checked, disabled ,readonly, onselect, onchange等属性可以查的
一个中文字符相当于几个字符?
在不同的编码中,中文字符占用的字节可能不同,如在gbk,gb2312中占2个字节,在utf-8中占3个字节
注意, 那个是字节,不是字符数
在html的表单input的maxlength和size属性中, 汉字仍然是1个字符, 自己可以试一试就知道
为什么表单中用name来获取input,select,textarea的值,而不用id?
因为id每个item只能是唯一的,而name对于多个item可以是相同的,如人的名字和身份证id
那对于多个分组的radio,checkbox来说, 用id就无法处理它们在同一组的情况,而用name就可以.
所以....
三元运算符,也叫? 表达式
?表达式可以用来代替一些简单的条件语句.
写法: ?:表达式,得到的是一个值, 其中不能放echo等语句放在?:表达式中,那是if...else的思想
要想根据不同的判断结果来打印不同的输出, 要把echo放在最前面,然后把值放在?:表达式中
?:前面如果是二元表达式条件,应该用括号括起来:
echo ($x>0) ? $x : 0;
判断为空是empty(mixed $str), 而不是isempty...
提交到本身自己的php文件,在载入时,会按顺序 依次执行其中的 php和html代码. 当submit后, 又
相当于发送一次html请求.
获取form表单中的checkbox,select的多个值
多个checkbox的值:
- 可以是每个checkbox都给予不同的name, 然后在
$_POST
中判断每一个不同的name - 也可以给所有的checkbox给一个相同的数组名字, 然后
$_POST['数组名字']
将获得选中的值组成的数字数组 - 但是, 如果给所有的..... 一个相同的** 名字**, 这时候用
$_POST['name']
,将只能获得最后一个被选中的值.即前面的选择将被覆盖.
对于简单的单个文件中的css就没有必要单独创建一个css文件,直接写在php文件的<style ...>
中就可以了,这样可以减少http请求的次数, 如果是较大的项目也尽量合并压缩css.
对于php文件,很多时候,都要把<?php ...?>
放在文档的最前面.然后写<html...>
, 因为在后面的html文件中需要用到前面的php输出的变量...
php的单引号和双引号对转义字符的区别?
单引号只解析两个转义: \', \, 其余不做转义
而双引号基本上对所有的转义都解析, 如\',\,\r, \n, \t等等.
但是PHP_EOL是常量,不能放在双引号中进行转义!
在php中为什么用\n, PHP_EOL而不直接用"<br />"
- 因为在传统的所谓"程序"中, 如c语言,php语言也是遵循惯例,通常是使用\n,\r, \r\n
- 为了程序的可移植性, 所以用PHP_EOL
- 只有在html标记语言中才使用
<br />
, 这个通常都不认为是程序 但是使用\n等,虽然在服务器的http响应报文中的响应数据中,看源代码确实是换行了,但是浏览器在解析的时候,会忽略这些换行!
- 因为浏览器只认
<br>
- 因为浏览器只认
所以, 在从php输出的时候,解决方法是,为什么要使用nl2br:
nl2br($str);
webexam项目杂记2的更多相关文章
- webexam项目杂记
sql 语句 数据库 本身 有数据类型的区分,对于mysql的字符串默认的用单引号''来表示,因此,整个sql 语句就要用双引号来括. 如: $sql = "SELECT * FROM us ...
- vue项目杂记
vue项目杂记 文件目录结构 src main.js app.vue package.json webpack_config_dev.js 需要安装的包 1. vue cnpm i vue --sav ...
- [ vue ] xxxProject项目杂记
2020.4.9 加入eCharts 2020.4.8 完成article的显示,其间碰到全局路由守卫写的有错误,导致跳转报错.已修复. 加入keep-alive功能,缓存视图数据 疑问:如果在全局组 ...
- Web 项目杂记(一)
1.Tomcat 多实例部署 在Tomcat下多实例部署后,发现如下问题,采用etc/init.d/tomcat start方式无法启动,而需要采用startup.sh.查找原因发现,是因为多实例部署 ...
- 项目杂记(MONTHS_BETWEEN,Having ,Spool)
1,oracle中计算年龄: select FLOOR(MONTHS_BETWEEN(SYSDATE, to_date('20130728', 'yyyymmdd')) / 12), trunc(mo ...
- pytorch从入门到放弃(目录)
目录 前置基础 Pytorch从入门到放弃 推荐阅读 前置基础 Python从入门到放弃(目录) 人工智能(目录) Pytorch从入门到放弃 01_pytorch和tensorflow的区别 02_ ...
- 数据结构与算法-江西师范大学865(针对考研or面试)
可以加我微信chenyoudea免费要江西师范大学865资料全套pdf 目录 第一篇 数据结构与算法(针对考研or面试) 第二篇 真题演练 第三篇 复试 第四篇 推荐阅读 第一篇 数据结构与算法(针对 ...
- MySQL数据库从入门到放弃(目录)
目录 MySQL数据库从入门到放弃 推荐阅读 MySQL数据库从入门到放弃 193 数据库基础 194 初识MySQL 195 Windows安装MySQL 196 Linux安装MySQL 197 ...
- 从Python到水一篇AI论文(核心 or Sci三区+)
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...
随机推荐
- 学习Shell脚本编程(第2期)_编写修改权限及执行Shell程序的步骤
编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时 ...
- 利用location.hash+iframe跨域获取数据详解
前言 如果看懂了前文利用window.name+iframe跨域获取数据,那么此文也就很好理解了.一样都是动态插入一个iframe,然后把iframe的src指向服务端地址,而服务端同样都是输出一段j ...
- 自定义带图片和文字的ImageTextButton
今天我们来讲一下有关自定义控件的问题,今天讲的这篇是从布局自定义开始的,难度不大,一看就明白,估计有的同学或者开发者看了说,这种方式多此一举,但是小编我不这么认为,多一种解决方式,就多一种举一反三的学 ...
- Jsp内置对象及EL表达式的使用
一.JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse ses ...
- OpenCart 最新使用教学视频合集
OpenCart 是一个很火的开源电商系统,国内越来越多的人开始使用 OpenCart 搭建自己的电商网站.OpenCart 的功能非常强大,当然功能也非常多.这里整理了 OpenCart 最重要的一 ...
- sublime2的一些基本常用的操作
1.全局搜 ctrl shift f 如果你的快捷键有冲突的话,那么你在find的菜单中有find in file这个中找.
- session和cookie的前后的操作
1. // sign outexports.signout = function (req, res, next) { req.session.destroy(); res.clearCookie(c ...
- 《TCP/IP详解卷1:协议》第17、18章 TCP:传输控制协议(1)-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 第二十六课:jQuery对事件对象的修复
因为原生的event对象,在不同浏览器下,有不同的属性和方法,因此需要用jQuery进行兼容. jQuery在这里分两步走,首先创建一个伪事件类jQuery.Event(jQuery里面自定义的事件类 ...
- 软工实践练习——使用Git进行代码管理
GITHUB上的预备活动: 注册 创建小组Organization,邀请组员进来 将代码库fork到小组Organization底下 下载并使用GIT: Git的安装 使用Git进行代码管理 1.从百 ...