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的更多相关文章

  1. webexam项目杂记

    sql 语句 数据库 本身 有数据类型的区分,对于mysql的字符串默认的用单引号''来表示,因此,整个sql 语句就要用双引号来括. 如: $sql = "SELECT * FROM us ...

  2. vue项目杂记

    vue项目杂记 文件目录结构 src main.js app.vue package.json webpack_config_dev.js 需要安装的包 1. vue cnpm i vue --sav ...

  3. [ vue ] xxxProject项目杂记

    2020.4.9 加入eCharts 2020.4.8 完成article的显示,其间碰到全局路由守卫写的有错误,导致跳转报错.已修复. 加入keep-alive功能,缓存视图数据 疑问:如果在全局组 ...

  4. Web 项目杂记(一)

    1.Tomcat 多实例部署 在Tomcat下多实例部署后,发现如下问题,采用etc/init.d/tomcat start方式无法启动,而需要采用startup.sh.查找原因发现,是因为多实例部署 ...

  5. 项目杂记(MONTHS_BETWEEN,Having ,Spool)

    1,oracle中计算年龄: select FLOOR(MONTHS_BETWEEN(SYSDATE, to_date('20130728', 'yyyymmdd')) / 12), trunc(mo ...

  6. pytorch从入门到放弃(目录)

    目录 前置基础 Pytorch从入门到放弃 推荐阅读 前置基础 Python从入门到放弃(目录) 人工智能(目录) Pytorch从入门到放弃 01_pytorch和tensorflow的区别 02_ ...

  7. 数据结构与算法-江西师范大学865(针对考研or面试)

    可以加我微信chenyoudea免费要江西师范大学865资料全套pdf 目录 第一篇 数据结构与算法(针对考研or面试) 第二篇 真题演练 第三篇 复试 第四篇 推荐阅读 第一篇 数据结构与算法(针对 ...

  8. MySQL数据库从入门到放弃(目录)

    目录 MySQL数据库从入门到放弃 推荐阅读 MySQL数据库从入门到放弃 193 数据库基础 194 初识MySQL 195 Windows安装MySQL 196 Linux安装MySQL 197 ...

  9. 从Python到水一篇AI论文(核心 or Sci三区+)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

随机推荐

  1. Android使用service后台更新计划任务

    Service是Android的四大组件之一,这里就不再过多的去描述,下面主要实现启动应用时候利用service后台执行计划任务,退出应用后,关闭service,只存在整个应用的周期中. 首先使用se ...

  2. MVC5 + EF6 + Bootstrap3 (13) 查看详情、编辑数据、删除数据

    Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-rud.html 系列教程:MVC5 + EF6 + Boo ...

  3. Koala Framework是什么?我为什么要写这个框架?

    当时的监管组,技术力量累积的很少,还在直连DB,使用着DataTable.DataSet作为数据的承载,监管是公司最近几年主推的项目,所以领导们决定进行重要调整. 初来乍到 由于之前没有任何的技术积累 ...

  4. 第六章:javascript:字典

    字典是一种以键-值对应形式存储的数据结构,就像电话薄里的名字和电话号码一样.只要找一个电话,查找名字,名字找到后,电话号码也就找到了.这里的键值是你用来查找的东西,值就是要查的到的结果. javasc ...

  5. AngularJS开发指南15:AngularJS的创建服务,将服务注入到控制器,管理服务依赖详解

    创建服务 虽然AngularJS提供了很多有用的服务,但是如果你要创建一个很棒的应用,你可能还是要写自己的服务.你可以通过在模块中注册一个服务工厂函数,或者通过Module#factory api或者 ...

  6. Mysql 调优小技巧

    MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些思 ...

  7. Daily Scrum – 1/6

    Meeting Minutes 确认修复了一个bug,即变方的: 分配了以后的任务: 确认将速度写入了用户的设置文件 Burndown     Progress   part 组员 今日工作 Time ...

  8. Codeforces Round #379 (Div. 2) D. Anton and Chess 模拟

    题目链接: http://codeforces.com/contest/734/problem/D D. Anton and Chess time limit per test4 secondsmem ...

  9. WPF--调用线程必须为 STA,因为许多 UI 组件都需要(转载)

    自VS2005开始,UI元素在不同线程中访问就受到限制了,当然你也可以解除这种限制 以下提供Framework3.0的解决方案发: public partial class Window1 : Win ...

  10. 【HDU 1228】A + B

    题 Description 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出.    Input 测试输入包含若干测试用例,每个测试用例占一行,格式 ...