如何将创建的文档放到指定目录
- 例如如何将创建的txt文件到指定的txt目录下,或者如何将拷贝后的图片放入img目录下

1 | //html 文件 |
1 | // php 文件 |
1 | //html 文件 |
1 | // php 文件 |
1 | <!--增加菜单前台页面--> |
1 | <?php |
1 | //使用Ajax获得菜单数据 |
1 | <?php |
1 | <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> |
1 | <?php |
1 | <?php |
1 | <body> |
1 | <?php |
1 | <?php |
1 | <script type="text/javascript"> |
1 | var xhr = new XMLHttpRequest(); |
1 | <?php |
mysql与mysqli都是php方面的函数集,与mysql数据库关联不大。
mysql_connect()与mysqli_connect()
使用mysqli,可以把数据库名称当作参数传给mysqli_connect()函数,也可以传递给mysqli的构造函数;
如果调用mysqli_query()或mysqli的对象查询query()方法,则连接标识是必需的。
mysql与mysqli的区别:
mysql是非持继连接函数,mysql每次链接都会打开一个连接的进程。
mysqli是永远连接函数,mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销。mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。返回记录集类型为array mysql_fetch_array ( resource $result [, int $ result_type ] )有一点很重要必须指出,用 mysql_fetch_array() 并不比用 mysql_fetch_row()慢,而且还提供了明显更多的值。 mysql_fetch_array() 中可选的第二个参数 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。参数的默认值是 MYSQL_BOTH。如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc()那样 mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。),用 MYSQL_NUM 只得到数字索引[]。例如:
1 | $con = mysqli_connect("localhost","root","","mydb"); |
* mysqli_connect: 连接数据库
* mysqli_error: 最后一次SQL动作错误信息 * mysql_errno(): 函数返回上一个 MySQL 操作中的错误信息的数字编码。 返回上一个 MySQL 函数的错误号码,如果没有出错则返回 0(零)。 * mysqli_query: 执行SQL语句,增删改查 * mysqli_select_db: 选择数据库 * mysqli_fetch_array(): 从查询结果去1条查询记录 * mysqli_fetch_all(): 函数从结果集中取得所有行作为关联数组 * mysqli_close: 关闭数据库
假设数据库的名称为mydb
1 | /** |
1 | $create_table = "create table mysql_table(id int NOT NULL AUTO_INCREMENT,PRIMARY KEY(id),name varchar(15),age int)"; |
1 | $insert1 = "insert into mysql_table (`name`, `age`) values('yyy',90)"; |
1 | $select1 = "select * from mysql_table where age > 20"; |
1 | mysqli_close($con); |
1 | //html 文件 |
1 | // php 文件 |
Cookie实际上是一小段的文本信息。客户请求服务器,如果服务器需要记录该用户状态,就使用response想客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再次请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容,换句话说,Cookie不适合用带有隐私类信息。
1 | <?php |
例如上端代码,当每次刷新界面的时候num都会自增1,实现界面浏览次数。
Cookie在客户端是由浏览器管理的,浏览器能够保证Google只会操作Google的Cookie,而不会操作baidu的Cookie,从而保证用户的隐私安全
1 | <script type="text/javascript"> |
1 | <?php |
1 | <script type="text/javascript"> |
1 | //设置一个有生命期的cookie |
1 | <script type="text/javascript"> |
###Cookie总结
- Cookie 是存储在浏览器哭护短的一片数据
- 可以同时被前台和后台操作。当前台刷新后,刷新后台,此时num会在前台基础上增1。
- 可以跨页面存储
- Cookie是由生命期,默认与浏览器进程相同,如果浏览器退出, Cookie会被注销
- Cookie特点,以键值对形式存储,用分号空格分隔每一个Cookie
Session是一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,为Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找客户的状态就可以了。
如果说Cookie是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案袋就可以了。
上面提到过,Session数据存储在服务器中,每个会话分配一个单独的Sessioin_id,该Session_id通过Cookie传送到前台,默认的session_id名称就是PHPSESSION,前台只能看到Session的id,为不能修改Session,这样我们就可以用Session来保存一些隐私信息。
使用Session之前,需要先开启会话。Session存储在Session数组$_SESSION里面。相对于Cookie,Session存储比较安全,但如果Session数量较多,会导致服务器性能下降。
1 | <!DOCTYPE html> |
####PHP代码1 往后台上传图片,添加菜品和价格
1 | <?php |
####PHP代码2 从后台去数据
1 | <?php |
HTML 代码段
1 | <!DOCTYPE html> |
PHP代码段
1 | <?php |
1 | <form method="get"> |
1 | $.ajax({ |
1 | $menu = array(); |
1 | $("#btn")[0].onclick = function() { |
1 | if(!empty($_POST["key"])){ |
//data可能是xmlDoc、jsonObj、html、text等等
this; //调用本次ajax请求时传递的options参数
}jsonp:
要求 为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在”callback=?”这种GET或POST请求中URL参数里 的”callback”部分,例如{jsonp:’onJsonPLoad’}会导致将”onJsonPLoad=?”传给服务器。
processData:
要 求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类 型”application/x-www-form-urlencoded”。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。
contentType:
要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为”application/x-www-form-urlencoded”。该默认值适合大多数应用场合。
json_encode 对变量进行JSON编码,该方法可以对出了resource类型的意外的所有类型进行json编码,编码成功则返回以JSON形式表示的string或者在失败的时候返回FALSE。
json_decode 对JSON格式的字符串进行编码
json_decode(string &json [bool $assoc])
参数1 为待解码的json string 格式的字符串。参数2 如果为true则返回array而非object
JSON数据的四个基本规则:
1> 并列的数据之间用逗号“,”分隔
2>映射用冒号 “:”表示
3>并列数据的集合(数组)用方括号”[]”表示
4>映射的集合(对象)用大括号“{}”表示。
但是有时候使用JSON.parse()也会出错
当映射的对象是汉字,并且中间有”\“的时候JSON.parse()会报错,但是用eval不会
但当映射的对象是英文时,两个都不会报错,但是反斜杠后面的内容不会显示
使用JSON.parse(),只有严格按照json格式的字符串才能输出
至于JSON.parse和eval的区别及利弊则引用《高性能Javascript》书中的一句话:
警告:关于JSON和eval需要注意的是:在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,
尽可能使用JSON.parse()方法解析字符串本身。该方法可以捕捉JSON中的语法错误,并允许你传入一个函数,用来过滤或转换解析结果。
如果此方法以备Firfox 3.5 、IE8 及 Safari 4 原生支持。大多数javascript类库包含的JSON解析代码会直接调用原生版本,如果没有原生支持的话,会调用一个略微不那么强大的非原生版本来处理
根据浏览器同源策略,所谓同源就是协议、主机、端口号都相同时成为同源。a 域的js不能直接访问 b域名的信息,但是script 标签的src属性可以跨域引用文件,jsonp是请求之后后台包装好一段json,并且把数据放在一个callback函数,返回一个js文件,动态引入这个文件,下载完成js之后,会去调用这个callback,通过这样访问数据。
由于同源从略的限制,XMLHttpRequest只允许请求前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后再服务端输出JSON数据并执行回调函数,从而解决跨域数据请求
首先在客户端注册一个callback,然后把callback的名字传给服务器。此时,服务器先生成json数据,然后以javascript语法的方式,生成function,function名字就是传递上来I带参数jsonp。最后将json数据直接以入参的方式,放置function中,这样就生成js语法的文档,返回给客户端。客户端浏览器,解析script变迁,并执行返回javascript文档,此时数据作为参数,传入了客户端预先定义好的callback函数里。
简单的说,就是利用script标签没有跨域限制的“漏洞”来达到与第三方通讯的目的。
#####json 是一种数据格式
#####jsonp 是一种数据调用的方式,
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true