PHP include_path 用法详解

 更新时间:2016年11月25日 15:08  点击:1539

ini_set('include_path', CAKE_CORE_INCLUDE_PATH . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS . PATH_SEPARATOR . ini_get('include_path'));
我们看到这个程序动态修改include_path。不过cake在这儿是把 CAKE_CORE_INCLUDE_PATH 和 APP_DIR 加到 include_path里,并且优先在这两个目录下找包含程序。
注意到它这里用到了PATH_SEPARATOR这个变量。这样这段代码在windows和linux下能通用。

从中受到启发,我们可以根据自己的需要把一些include目录动态的加入进来。比如说我们有很多libs:lib1,lib2,lib3等等。我们不必把这些libs都加到include_path里,因为它们之间可能冲突。
可以建立一个inc_dir,并把这个目录加入到include_path。在inc_dir下,分别建立inc_path1.php教程 inc_path2.php inc_path3.php
分别写入
<?php
ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.$dirToLib1);
<?php
ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.$dirToLib2);
<?php
ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.$dirToLib3);

在写程序的时候,比如要用lib2的functions.php
就可以这么写
<?php
require 'inc_path2.php';
require 'functions.php';

 

当时候函数include(),require(),fopen_with_path()函数来寻找文件时候.在不设置include_path的情况下,这些函数打开文件时候默认的是以web根目录去寻找.当设置include_path以后,这些php函数就会先在指定的include_path目录下面去搜索寻找.

其原理和window系统的环境变量相似,在window运行cmd命令的时候,输入一些cmd的命令之后系统会在其设定的环境变量里面去搜索这些命令是否存在,存在就可以执行.


2.include_path的设置
第一种方法:

修改php.ini文件中的include_path项。

include_path = .:/usr/local/lib/php:./include
第二个方法:

使用ini_set方法。
ini_set("include_path", ".:../:./include:../include");     

3.注意
zendframework include 设置 index.php

复制代码 代码如下:
set_include_path('.' .PATH_SEPARATOR.'../library/'
.PATH_SEPARATOR.'./application/models/'
.PATH_SEPARATOR.'./application/lib/'
.PATH_SEPARATOR.get_include_path());

PATH_SEPARATOR是一个常量,在Linux系统中是一个" : "号,Windows上是一个";"号。

所以编写程序时最好用常量 PATH_SEPARATOR 代替,否则如果系统从linux移植到win系统或反过来移植会出错!
get_include_path取得当前已有的环境变量,加上前面的设置就是新的系统include

include_path是怎么起作用的?
如果有多个include_path顺序是怎么样的?
什么情况下include_path不起作用?
今天, 我就全面的介绍下这个问题, 先从一个例子开始吧.
如下的目录结构:

  •   root
  •     ├ 1.php
  •     ├ 3.php
  •     └ subdir
  •          ├ 2.php
  •           └ 3.ph

在1.php中:

  • <?php
  • ini_set(“include_path”, “.:path_to_subdir”);
  • require(“2.php”);
  • ?></SPAN

而在2.php中:

  • <?php
  • require(“3.php”);
  • ?></SPAN

而在root目录下的3.php打印出”root”, 在subdir目录下的3.php打印出”subdir”;
现在, 我的问题来了:
1. 当在root目录下运行1.php, 会得到什么输出?
2. 在subdir下运行上一级目录的1.php, 有会得到什么输出?
3. 当取消include_path中的当前目录path(也就是include_path=”path_to_subdir”), 上面俩个问题又会是什么输出?
PHP中的include_path
PHP在遇到require(_once)/include(_once)的指令的时候, 首先会做如下的判断:

  • 要包含的文件路径是绝对路径么?
  • 如果是, 则直接包含, 并结束.
  • 如果不是, 进入另外的逻辑(经过多次调用, 宏展开后进入_php_stream_fopen_with_path)寻找此文件

接下来, 在_php_stream_fopen_with_path中, 会做如下判断:

  • 要包含的文件路径是相对路径么(形如./file, ../dir/file, 以下用”目录相对路径代替”)?
  • 如果是, 则跳过include_path的作用逻辑, 直接解析相对路径(随后单独介绍)

会根据include_path,和当前执行文件的path组成一个待选的目录列表, 比如对于文章前面的例子来说, 会形成一个如下的待选列表

  • “.:path_to_subdir:current_script_dir

然后, 依次从待选列表头部开始, 根据DEFAULT_DIR_SEPARATOR(本文的环境是”:”)取出待选列表中的一个路径, 然后把要包含的文件名附加在这个路径后面, 进行尝试. 如果成功包含, 则返回, 否则继续下一个待选路径.
到现在为止, 我们已经可以回答我开头提出的3个问题了.
1. 因为在root目录下执行, 所以在1.php中包含2.php的时候, include_path的第二个待选路径起了作用(path_to_subdir), 找到了path_to_subdir/2.php, 而在2.php包含3.php的时候, 当前工作目录是root下, 所以在包含3.php的时候, include_path的第一个待选路径”.”(当前工作目录)下就找到的匹配的文件, 所以得到的输出是”root”.
2. 同1, 只不过当前的路径是subdir, 所以得到的输出是”subdir”.
3. 因为没有了当前路径为include_path, 所以在root目录下运行的时候2.php中包含3.php的时候, 是path_to_subdir起了作用, 所以无论在root还是subdir都将得到”subdir”的输出.
而如果在2.php中清空include_path,

  • <?php
  • ini_set(“include_path”, );
  • require(“3.php”);
  • ?></SPAN

那么将会是current_script_dir起作用, 而这个时候current_script_dir是2.php的路径, 所以还是会得到”subdir”的输出.
目录相对路径
在使用目录相对路径的情况下, 相对路径的基点, 永远都是当前工作目录.
为了说明在目录相对路径下的情况,我们再看个列子, 还是上面的目录结构, 只不过1.php变成了:

  • <?php
  • ini_set(“include_path”, “/”);
  • require(“./subdir/2.php”);
  • ?></SPAN

2.php变成了:

  • <?php
  • require(“./3.php”);
  • ?></SPAN

如果在root目录下执行, 2.php中寻找3.php将会在当前目录的相对路径下寻找, 所以得到的输出是”root”, 而如果是在subdir下执行上一级目录的1.php(php -f ../1.php), 将会因为在subdir下找不到”./subdir/2.php”而异常退出.
后记
1. 因为使用include_path和相对路径的情况下, 性能会和寻找的次数有关, 最坏的情况下, 如果你有10个include_path, 那么最多可能会重试11次才能找到要包含的文件, 所以, 在能使用绝对路径的情况下最好使用绝对路径.

1.文件目录操作
最顶层止录是磁盘根目录,用'/'或'//'
当前目录 ./
../表示apache的目录即htdocs目录
1.创建与删除目录 mkdir
复制代码 代码如下:
<?php教程
if(mkdir("./path",0700)) //在当前目录中创建path目录
echo "创建成功";
?>

2.获取和更改当前目录
使用getcwd()函数可以取得当前的工作目录,该函数没有参数。成功则返回当前的工作目录,失败则返回FALSE
3.打开和关闭目录句柄
opendir($dir)
closed($dir_handle)
4.读取目录内容
readdir(),该参数是一个已经打开的目录句柄,与while循环可以实现对目录的遍历
5.获取指定路径中的目录与文件 。
array scandir(string $directory [, int $sorting_order [, resource $context ]])
说明:$directory为指定路径。参数$sorting_order默认是按字母升序排列,如果设为1表示按字母的降序排列。
$context是可选参数,是一个资源变量,可以用stream_context_create()函数生成,这个变量保存着与具体的操作对象有关的一些数据。
函数运行成功则返回一个包含指定路径下的所有目录和文件名的数组,失败则返回FALSE
2.操作文件的一般方法
3.文件的打开与关闭
1.打开文件
resource fopen(string $filename , string $mode [, bool $use_include_path [, resource $context ]])
●$filename参数。fopen()函数将$filename参数指定的名字资源绑定到一个流上
●$mode参数。$mode参数指定了fopen()函数访问文件的模式,取值见表4.5。
$mode
说 明
'r'
只读方式打开文件,从文件头开始读
'r+'
读写方式打开文件,从文件头开始读写
'w'
写入方式打开文件,将文件指针指向文件头。如果文件已经存在则删除已有内容,如果文件不存在则尝试创建它
'w+'
读写方式打开文件,将文件指针指向文件头。如果文件已经存在则删除已有内容,如果文件不存在则尝试创建它
'a'
写入方式打开文件,将文件指针指向文件末尾,如果文件已有内容将从文件末尾开始写。如果文件不存在则尝试创建它
'a+'
读写方式打开文件,将文件指针指向文件末尾。如果文件已有内容将从文件末尾开始读写。如果文件不存在则尝试创建它
'x'
创建并以写入方式打开文件,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建它。此选项被PH及以后的版本所支持,仅能用于本地文件
'x+'
创建并以读写方式打开文件,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建它。此选项被PH及以后的版本所支持,仅能用于本地文件
'b'
二进制模式,用于连接在其他模式后面。如果文件系统能够区分二进制文件和文本文件(Windows区分,而UNIX不区分),则需要使用到这个选项,推荐一直使用这个选项以便获得最大程度的可移植性

●$use_include_path参数。如果需要在include_path(PHP的include路径,在PHP的配置文件设置)中搜寻文件,
可以将可选参数 $use_include_path的值设为1或TRUE,默认为FALSE。
●$context参数。可选的$context参数只有文件被远程打开时(如通过HTTP打开)才使用,它是一个资源变量,
其中保存着与fopen()函数具体的操作对象有关的一些数据。如果fopen()打开的是一个HTTP地址,
那么这个变量记录着HTTP请求的请求类型、HTTP版本及其他头信息;如果打开的是FTP地址,
记录的可能是FTP的被动/主动模式
2.关闭文件
bool fclose(resource $handle)
4.文件的写入
文件写入前需打开文件,不存在先创建它,一般用fopen()函数创建
●fwrite().文件打开后,向文件写入内容
int fwrite(resource $handle , string $string [, int $length ])
说明:参数$handle是写入的文件句柄,
$string是将要写入文件中的字符串数据,
$length是可选参数,如果指定了$length,则当写入了$string中的前$length个字节的数据后停止写入。
●file_put_contents()函数。PHP 5还引入了file_put_contents()函数。这个函数的功能与依次调用fopen()、fwrite()及fclose()函数的功能一样。语法格式如下:
int file_put_contents(string $filename , string $data [, int $flags [, resource $context ]])
说明:$filename是要写入数据的文件名。
$data是要写入的字符串,$data也可以是数组,但不能为多维数组。
在使用FTP或HTTP向远程文件写入数据时,可以使用可选参数$flags和$context,这里不具体介绍。
写入成功后函数返回写入的字节数,否则返回FALSE。
●fputcsv()函数。CSV是一种比较常用的文件格式,一般以.csv作为扩展名。CSV格式把文件的一行看做是一条记录,记录里的字段使用逗号分隔。
在PHP中使用 fputcsv()函数可以把指定的数组格式化为符合CSV文件格式的内容,并写入文件指针指向的当前行。语法格式如下:
int fputcsv(resource $handle [, array $fields [, string $delimiter [, string $enclosure ]]])
说明:参数$handle是要写入的文件句柄。
参数$fields是要格式化的数组。
可选的$delimiter参数用于设定字段分界符(只允许一个字符),默认为逗号。
可选的$enclosure参数设定字段环绕符(只允许一个字符),默认为双引号
5 文件的读取
1.读取任意长度
fread()函数可以用于读取文件的内容,语法格式如下:
string fread(int $handle, int $length)
说明:参数$handle是已经打开的文件指针,
$length是指定读取的最大字节数,$length的最大取值为8192。
如果读完$length个字节数之前遇到文件结尾标志(EOF),则返回所读取的字符,并停止读取操作。
如果读取成功则返回所读取的字符串,如果出错返回FALSE。
注意:在读取文件后显示文件内容时,文本中可能含有无法直接显示的字符,如HTML标记。
这时需要使用htmlspecialchars()函数将HTML标记转化为实体才能显示文件中的字符。
2.读取整个文件
●file()函数。file()函数用于将整个文件读取到一个数组中,语法格式如下:
array file(string $filename [, int $use_include_path [, resource $context ]])
说明:本函数的作用是将文件作为一个数组返回,数组中的每个单元都是文件中相应的一行,包括换行符在内,
如果失败则返回FALSE。参数$filename是读取的文件名,参数$use_inclue_path和$context的意义与之前介绍的相同
●readfile()函数。readfile()函数用于输出一个文件的内容到浏览器中,语法格式如下:
int readfile(string $filename [, bool $use_include_path [, resource $context ]])
●fpassthru()函数。fpassthru()函数可以将给定的文件指针从当前的位置读取到EOF,并把结果写到输出缓冲区。
要使用这个函数,必须先使用fopen()函数打开文件,然后将文件指针作为参数传递给fpassthru()函数,
fpassthru()函数把文件指针所指向的文件内容发送到标准输出。如果操作成功返回读取到的字节数,否则返回FALSE。
●file_get_contents()函数。file_get_contents()函数可以将整个或部分文件内容读取到一个字符串中,
功能与依次调用fopen()、fread()及fclose()函数的功能一样。语法格式如下:
string file_get_contents(string $filename [, int $offset [, int $maxlen ]])
说明:$filename是要读取的文件名,可选参数$offset可以指定从文件头开始的偏移量,
函数可以返回从$offset所指定的位置开始长度为$maxlen的内容。如果失败,函数将返回FALSE

php教程 rn 与unix中的n 的区别

n 软回车:
      在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 r 的效果。
      在Linux、unix 中只表示换行,但不会回到下一行的开始位置。

r 软空格:
      在Linux、unix 中表示返回到当行的最开始位置。
      在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 n 的效果。

t 跳格(移至下一列)。


它们在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。
rn 一般一起用,用来表示键盘上的回车键,也可只用 n。
t表示键盘上的“TAB”键。

就像你使用 enter和shift+enter的区别,如果要显示在页面上的效果还要转化为HTML代码或用...

文件中的换行符号:

linux,unix:     rn
windows    :     n  
Mac OS   :   r

对应:

n LF或ASCII中的0x0A(10)
r CR或ASCII中的0x0D(13)
t 水平制表符-HT或ASCII中的0x09(9)
反斜杠
$ 美圆符
" 双引号
' 单引号

                  图1

开始不明白 "(CRLF)" 是什么意思!

查了一些资料,在一篇帖子里面发现了它的原意:

先发地址

其中一个人的回帖 把这个问题给我破解了 ,并且还介绍了windows下面rn的理由

php教程中的三元运算符详解


三元运算符的功能与“if....else”流程语句一致,它在一行中书写,代码精练、执行效率高。在PHP程序中恰当地使用三元运算符能够让脚本更为简洁、高效。代码的语法如下:

(expr1)?(expr2):(expr3);

 
解释:如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。

实现同样的功能,若使用条件流程语句,就需要书写多行代码:

 if(expr1){
expr2;
}else{
expr3;
}
可见,三元运算符之好并非夸张。可是多数情况下我们只在代码较为简单的时候使用三元运算符,即执行语句只为单句的时候。如:
 

 $a>$b?print"a大于b":print"a小于b";
事实上,三元运算符可以扩展使用,当设置的条件成立或不成立,执行语句都可以不止一句,试看以下格式:
 

 (expr1)?(expr2).(expr3):(expr4).(expr5);
我们非常明显地看到,多个执行语句可以使用字符串运算符号(“.”)连接起来,各执行语句用小角括号包围起来以表明它是一个独立而完整的执行语句。这样扩展后它的功能更为逼近“if....else”流程语句。

同时三元运算符还可以嵌套使用。例如,a大于b成立时:如果a小于c,那么x=c-a否则x=a-c;否则a小于b成立时:如果b小于c,那么x=c-b否则x=b-c:
 

 $a>$b?$x=($a<$c?$c-$a:$a-$c):$x=($b<$c?$c-$b:$b-$c);
嵌套使用的三元运算符可读性不好,对日后代码维护也可能存在问题,但它比“if....else”之类的流程语句相比,它是很简练了,这是它的好处。

在使用中也可以不考虑“三元”中条件句以外的任意某一“元”,使用三元运算符运算符仍然比if语句简练。以下的语法是正确的,它们以小解引号的方式忽略第二或第三“元”:
 

 $a>$b?print"YES":"";
 $a>$b?"":print"No";
 
应该注意的是:在使用三元运算符时,建议使用print语句替换echo语句-----------经测试,php4环境下,在使用三元运算时若用echo语句打印内容,php会报错

 

三元运算符也可以用来赋值:


 $a=2;
 $b=1;
 $str=($a>$b):'Yes':'No';
echo $str;

 

echo
    $a == 1 ? 'one' :
 $a == 2 ? 'two' : 
 $a == 3 ? 'three' :  
 $a == 4 ? 'foura' : 'other';
echo "n";

输出结果是:

 

 

结果是:four

一开始想不明白,按照我的理解,应该是这样的逻辑:
echo ($a == 1 ? 'one' :
   ( $a == 2 ? 'two' :
   ( $a == 3 ? 'three' :
    ($a == 4 ? 'four' : 'other'))));
输出为:two

后来在kevinG(qq:48474)的指教下,参看php手册,终于明白了php的三元符的解释是从左到右的,
<!--?php
// 乍看起来下面的输出是 'true'
echo (true?'true':false?'t':'f');

// 然而,上面语句的实际输出是't',因为三元运算符是从左往右计算的

// 下面是与上面等价的语句,但更清晰
echo ((true ? 'true' : 'false') ? 't' : 'f');

所以上面的可以这样解释:
 echo (
    ((($a == 1 ? 'one' :
 $a == 2) ? 'two' : 
 $a == 3 )? 'three' :  
 $a == 4 )? 'four' : 'other');

  其实这个涉及到类型转换:
$a==1=>false=>$a==2?true=>'two'=true=>'three'=true=>'four'

header() 函数向客户端发送原始的 HTTP 报头。

认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题):

<html>
<?php教程
// 结果出错
// 在调用 header() 之前已存在输出
header('Location: http://www.example.com/');
?>语法
header(string,replace,http_response_code)参数 描述
string 必需。规定要发送的报头字符串。
replace 可选。指示该报头是否替换之前的报头,或添加第二个报头。

默认是 true(替换)。false(允许相同类型的多个报头)。
 
http_response_code 可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)
提示和注释
注释:从 PHP 4.4 之后,该函数防止一次发送多个报头。这是对头部注入攻击的保护措施。
例子
例子 1
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>

<html>
<body>

...
...注释:用户可能会设置一些选项来更改浏览器的默认缓存设置。通过发送上面的报头,您可以覆盖任何这些设置,强制浏览器不进行缓存!

例子 2
提示用户保存一个生成的 PDF 文件(Content-Disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框):

<?php
header("Content-type:application/pdf");

// 文件将被称为 downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");

// PDF 源在 original.pdf 中
readfile("original.pdf");
?>

<html>
<body>

...
...


<?php
// 结果出错
// 在调用 header() 之前已存在输出
header('location: http://www.111cn.net/');
?>语法
header(string,replace,http_response_code)

该函数防止一次发送多个报头

<?php
// date in the past
header("expires: mon, 26 jul 1997 05:00:00 gmt");
header("cache-control: no-cache");
header("pragma: no-cache");
?>

提示用户保存一个生成的 pdf 文件(content-disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框):

当时间超过指定时间就表示网页内容已经失效。 其格式如下

expires = “expires:” http-date

例 如: header(“expires: fri, 31 oct 2003 18:00:00 gmt”); 表示2003年10月31日星期五 18时。

header(“expires: wed, 30 jun 2004 09:00:00 gmt”); 表示2004年6月30日星期三 9时。

last-modified = “last-modified” “:” http-date

例如 header(“last-modified: wed, 01 jan 2003 12:00:00 gmt”); 上次修改时间2003年1月1日12时

cache control

no-cache 使得服务器的数据可以传送到远程的使用者, 而不会被暂存 (cache) 起来。

no-store 是预防不良的版本或者是敏感的信息被保留下来。

must-revalidate 是指必须要再评估信息, 如果暂存 (cached) 的数据是无效的则让服务器与使用者端联机


更多详细内容请查看:http://www.111cn.net/phper/php-function/36348.htm

看一此关于其它类型

[!--infotagslink--]

相关文章

  • vue-cli设置publicPath小记

    这篇文章主要介绍了vue-cli设置publicPath小记,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-14
  • C#中using的三种用法

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
  • IDEA如何添加配置文件到classpath中

    这篇文章主要介绍了IDEA如何添加配置文件到classpath中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
  • DOM XPATH获取img src值的query

    复制代码 代码如下:$nodes = @$xpath->query("//*[@id='main_pr']/img/@src");$prurl = $nodes->item(0)->nodeValue;...2013-10-04
  • iscroll.js 用法介绍

    最新版下载: http://www.csdn123.com/uploadfile/2015/0428/20150428062734485.zip 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生...2016-05-19
  • C#中的try catch finally用法分析

    这篇文章主要介绍了C#中的try catch finally用法,以实例形式分析了try catch finally针对错误处理时的不同用法,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C++中cin的用法详细

    这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h”或者检测到 #include 错误,请更新includePath)(POSIX API)

    这篇文章主要介绍了VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h” 或者 检测到 #include 错误。请更新includePath) (POSIX API),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-13
  • 示例详解react中useState的用法

    useState 通过在函数组件里调用它来给组件添加一些内部 state,React 会在重复渲染时保留这个 state,接下来通过一个示例来看看怎么使用 useState吧...2021-06-04
  • Delphi常用关键字用法详解

    这篇文章主要介绍了Delphi常用关键字用法,包括了各个常用的关键字及其详细用法,需要的朋友可以参考下...2020-06-30
  • PHP中print_r、var_export、var_dump用法介绍

    文章详细的介绍了关于PHP中print_r、var_export、var_dump区别比较以及这几个在php不同的应用中的用法,有需要的朋友可以参考一下 可以看出print_r跟var_export都...2016-11-25
  • php中php://input的用法详细

    在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php://input。 下面的例子摘取的是wordpres...2016-11-25
  • MySQL中的主键以及设置其自增的用法教程

    1、声明主键的方法: 您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name)); 也可以更新表结构时为表加上主键,如: ALTER TABLE tbl_name ADD PRIMARY KEY (in...2015-11-24
  • C#中this的用法集锦

    本文给大家汇总介绍了C#中的几种this用法,相信大家应该有用过,但你用过几种?以下是个人总结的this几种用法,欢迎大家拍砖,废话少说,直接列出用法及相关代码。...2020-06-25
  • 基于mybatis中<include>标签的作用说明

    这篇文章主要介绍了基于mybatis中<include>标签的作用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-20
  • window.onerror()的用法与实例分析

    目前在做window.onerror时上报js错误信息的事,整理下相关资料,需要的朋友可以参考下...2016-01-29
  • 简单了解JavaScript操作XPath的一些基本方法

    XPath构建于XML之上,以表示路径的方式来确定XML中元素位置,事实上并不是太常用,这里我们来简单了解JavaScript操作XPath的一些基本方法...2016-06-12
  • Nginx反向代理proxy_cache_path directive is not allowed错误解决方法

    这篇文章主要介绍了Nginx反向代理proxy_cache_path directive is not allowed错误解决方法,需要的朋友可以参考下...2016-01-27
  • 基于xpath选择器、PyQuery、正则表达式的格式清理工具详解

    这篇文章主要介绍了基于xpath选择器、PyQuery、正则表达式的格式清理工具,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • C语言循环结构与时间函数用法实例教程

    这篇文章主要介绍了C语言循环结构与时间函数用法,是C语言中非常重要的一个技巧,需要的朋友可以参考下...2020-04-25