博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebNotes(PHP、css、JavaScript等)
阅读量:4352 次
发布时间:2019-06-07

本文共 4137 字,大约阅读时间需要 13 分钟。

1. 数据库编码格式

gb-2312仅支持简体中文,GBK支持简体、繁体中文,utf-8通用程度最高。

2. HTTP请求方法

get方法请求时,会将传输的数据跟在链接后“显式地”发送,受限于链接长度(一般512B或1024B);

post方法请求,数据传输过程更隐秘,数据的长度不受限。

3. Cookie和Session(数据在多个脚本间的共享方式)

Cookie存储于客户端,以键值对存储,可以使用Javascript脚本访问,但受限于客户端浏览器权限,若禁止Cookie,则服务器的脚本无法访问。

Session存储于服务器,以键值对存储,在不同脚本间共享。

4. 数据库操作

mysql扩展自 PHP 5.5.0 起已废弃,并在自 PHP 7.0.0 开始被移除,而使用mysqli扩展代替。

1)数据库连接:

函数式编程风格:$mysqli=mysqli_connect("example.com", "user", "password", "database"); 面向对象风格:$mysqli = new mysqli("example.com", "user", "password", "database");

2)SQL查询:

$res=$mysqli->query('select * from info_table');

3)根据返回结果的行号输出结果:

mysqli的属性num_rows,根据行号检索结果中的内容:

$res->data_seek($row_no);

遍历所有行的完整代码:

for ($row_no = $res->num_rows - 1; $row_no >= 0; $row_no--) {
$res->data_seek($row_no); $row = $res->fetch_assoc(); echo " id = " . $row['id'] . ' name='.$row['name']. "
"; }

取出某一行($row_no)的代码:

$res->data_seek($row_no);     $row = $res->fetch_assoc();     echo " id = " . $row['id'] . ' name='.$row['name']. "
";

4)使用“类似迭代器”取结果,并存入数组:

$res_arr=$res->fetch_assoc()

此时$res_arr中存有第一行结果,再执行一次上面一句,则取下一行的结果,并存入数组,通过键值对可以访问。

5.在CSS文件中引入其他CSS文件

@import "../main.css";

6.在链接中调用JavaScript函数

 text 

7.实现删除确认

与6配合使用,在删除的链接中调用下面的函数:

8.设备显示自适应的代码方式

①百分比;②vw(width占比)  vh(height占比)

eg. 20%  5vw  10vh

9.样式控制字体

style="font-size: 1vw; font-weight: bold"

10.设置网站的浏览器标识

在网页中使用Favicon最简单的办法便是将制作好的图标文件命名为Favicon.ico,然后将其上传到网站的根目录即可。但亲测服务器似乎不支持,于是手动写代码:

<link rel=”icon” href=”/dir/favicon.ico” mce_href=”/dir/favicon.ico” type=”image/x-icon”>

<link rel=”shortcut icon” href=”/dir/favicon.ico” mce_href=”/dir/favicon.ico” type=”image/x-icon”>

11.padding样式属性

style="padding:1px 2px 3px 4px;"

内边距:上1  右2  下3  左4

12.网站计数器

①通过session

②通过cookie

 13. 禁用ip访问服务器

(详细参考:https://linux.cn/article-4904-1.html)

在Linux中,可以很简单地用netfilter/iptables框架禁止IP地址:

  1. $ sudo iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP

如果你想要完全屏蔽一个IP地址段,你可以用下面的命令很简单地做到:

(我使用这条命令,1.1.2.0/24 表明子网掩码为前三段,若准确禁止某个ip,则24改成32)

  1. $ sudo iptables -A INPUT -s 1.1.2.0/24 -p TCP -j DROP

然而,当你有1000个独立IP地址,且不带CIDR(无类别域间路由)前缀,你该怎么做?你要有1000条iptable规则!这显然这并不适于大规模屏蔽。

  1. $ sudo iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP
  2. $ sudo iptables -A INPUT -s 2.2.2.2 -p TCP -j DROP
  3. $ sudo iptables -A INPUT -s 3.3.3.3 -p TCP -j DROP
  4. . . . .

14.PHP获取访问者的ip

15. PHP异常处理

try{
...; }catch (Exception $e){
print $e->getMessage(); exit(); }

16.时间戳与日期、时间

①时间戳

时间戳是指自Unix纪元(1970年00:00:00)起到当前经过的秒数,故单位是秒。

在PHP中,直接使用time()函数即可返回时间戳。

②日期、时间

时间戳不够直观,才有了date()函数,用以直观地按照指定格式输出日期和时间。

格式控制:

  • Y:年
  • m:月
  • d:日
  • H:带首位零的24小时制时
  • h:带首位零的12小时制时
  • i:由于m(inute)已经被m(onth)占用,所以取第二个字母i,代表分
  • s:带首位零秒
  • a:午前午后(am或pm)

函数格式:string date ( string $format [, int $timestamp = time() ] )

eg. date ("Y-m-d H:i:s", time());

 第二个参数可以直接给定某个时间戳,从而将其转换为指定格式。

 17.使用Pear提供的Mail类通过SMTP服务器发送邮件

  1. 在服务器上安装Pear提供的Mail类,其依赖于Net/SMTP.php和Mail/mime.php,故安装三个:
    pear install Mailpear install Mail_Mimepear install Net_SMTP
  2. 编写发送邮件的PHP脚本:
"; // 收件人显示信息 $to = implode(',',$mailAddr); // 邮件标题 $subject = "这是一封测试邮件"; // 邮件正文 $content = "

随便写点什么

"; // 邮件正文类型,格式和编码 $contentType = "text/html; charset=utf-8"; //换行符号 Linux: \n Windows: \r\n $crlf = "\n"; $mime = new Mail_mime($crlf); $mime->setHTMLBody($content); $param['text_charset'] = 'utf-8'; $param['html_charset'] = 'utf-8'; $param['head_charset'] = 'utf-8'; $body = $mime->get($param); $headers = array(); $headers["From"] = $from; $headers["To"] = $to; $headers["Subject"] = $subject; $headers["Content-Type"] = $contentType; $headers = $mime->headers($headers); $smtp =& Mail::factory("smtp", $smtpinfo); $mail = $smtp->send($mailAddr, $headers, $body); $smtp->disconnect(); if (PEAR::isError($mail)) { //发送失败 echo 'Email sending failed: ' . $mail->getMessage()."\n"; } else{ //发送成功 echo "success!\n"; }

这段代码是转自网络的内容,在实测时存在问题,花了半天时间解决。

首先,目前所有的邮件服务器都要求使用SSL连接(smtp发送邮件端口号463或587),故不可使用其他端口。而且,密码并非邮箱密码,必须在邮箱中设置开启POP/SMTP服务,开启后会给一个授权码,在程序中连接服务器的时候,使用授权码代替密码。

其次,Pear自己的官方文档中,未提及Mail::factory()第二个参数$smtpinfo中的$smtpinfo['auth']元素实质,只简单地提了这里填写Boolean类型,可是实测发现,这里要填写认证方式,例如我尝试了$smtpinfo['auth']="PLAIN"之后就成功连接了smtp.qq.com,并成功发送了邮件。

故最重要的两点:端口要选择SSL端口并开启SMPT服务后使用授权码;给定认证方式。

转载于:https://www.cnblogs.com/hizhaolei/p/9401670.html

你可能感兴趣的文章
每日英语
查看>>
[leetcode] Regular Expression Matching
查看>>
BZOJ1927: [Sdoi2010]星际竞速(最小费用最大流 最小路径覆盖)
查看>>
洛谷P1317 低洼地
查看>>
MVC Redirect 页面跳转不了
查看>>
李开复有哪些地方做的不好
查看>>
12.22
查看>>
新版本的molar mass(uva-1586)明明debug过了,各种测试还是WA真是气死我了
查看>>
gdb(ddd,kdevelop等)调试ZeroIce开发的应用程序,中断信号引起的问题
查看>>
牛股助推器(每股收益率)
查看>>
SpringCloud+feign 基于Springboot2.0 负载均衡
查看>>
【BZOJ5094】硬盘检测 概率
查看>>
mac上n次安装与卸载mysql
查看>>
Python之单元测试——HTMLTestRunner
查看>>
WebNotes(PHP、css、JavaScript等)
查看>>
C++:文件的输入和输出
查看>>
Http协议、Tomcat、servlet
查看>>
Spring Boot (11) mybatis 关联映射
查看>>
macOS 下安装tomcat
查看>>
字符串格式化复习笔记
查看>>