注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

上海seo顾问网站优化搜索引擎优化

上海seo咨询顾问,网站优化搜索引擎优化服务,google优化,网站优化公司

 
 
 

日志

 
 

PHP 资料  

2010-08-23 10:15:48|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

//数组function db_par(){

         $db_var=array(

                   'user'=>'root',

                   'pass'=>'123456',

                   'host'=>'localhost',

                   'db'=>'mora'

         );

         return $db_var;

}

//连接数据库function db_connect(){

         $dbpar=db_par();

         $db=mysql_connect($dbpar['host'],$dbpar['user'],$dbpar['pass']);

         mysql_select_db($dbpar['db']);

         mysql_query("set names utf8");

         return $db;

}

function db_close($db){

         return mysql_close($db);

}

截取字符串:function mysubstr($str, $start, $len) {  

$tmpstr = "";  

$strlen = $start + $len;  

                            for($i = 0; $i < $strlen; $i++) {  

                            if(ord(substr($str, $i, 1)) > 0xa0) {  

                            $tmpstr .= substr($str, $i, 2);  

                            $i++;  

                            } else 

                            $tmpstr .= substr($str, $i, 1);  

                  }  

return $tmpstr;  

}                          调用:echo mysubstr($string,0,96);

//1查找字符位置函数:strpos($str,search,[int]):查找search在$str中的第一次位置从int开始;

stripos($str,search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感

strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int

2、提取子字符函数(双字节)

submit($str,int start[,int length]):从$str中strat位置开始提取[length长度的字符串]。

strstr($str1,$str2):从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回FALSE。stristr() 功能同strstr,只是不区分大小写。strrchr() 从最后一次搜索到的字符处返回;用处:取路径中文件名

3、替换字符串

str_replace(search,replace,$str):从$str中查找search用replace来替换,str_irreplace(search,replace,$str):,strtr($str,search,replace):这个函数中replace不能为"";

substr_replace($Str,$rep,$start[,length])$str原始字符串,$rep替换后的新字符串,$start起始位置,$length替换的长度,该项可选

4、字符长度int strlen($str)

5、比较字符函数int strcmp($str1,$str2):$str1&gt;=<$str2分别为正1,0,-1(字符串比较)

strcasecmp() 同上(不分大小写).strnatcmp("4","14") 按自然排序比较字符串.strnatcasecmp() 同上,(区分大小写)

6、分割成数组函数str_split($str,len):把$str按len长度进行分割返回数组.

split(search,$str[,int]):把$str按search字符进行分割返回数组int是分割几次,后面的将不分割。expload(search,$str[,int])

7、去除空格:ltrim、rtrim、trim

8、加空格函数chunk_split($str,2);向$str字符里面按2个字符就加入一个空格;

9、chr、ord--返回指定的字符或ascii

10、HTML代码有关函数nl2br():使\n转换为&lt;br>。strip_tags($str[,'<p>']):去除HTML和PHP标记。在$str中所有HTML和PHP代码将被去除,可选参数为html和PHP代码作用是将保留。可选参数所写的代码。如:echo strip_tags($text, '<br><p>');

htmlspecialchars($str[,参数]):页面正常输出HTML代码参数是转换方式

11、字符大小写转换函数strtolower($str)字符串转换为小写strtoupper($str)字符串转换为大写ucfirst($str)将函数的第一个字符转换为大写ucwords($str)将每个单词的首字母转换为大写

12、数据库相关函数addslashes($str):使str内单引号(')双引号(")反斜线(\),NUL字符串转换为\',\",\\.magic_quotes_gpc=on自动对get post cookie的内容进行转义get_magic_quotes_gpc()检测是否打开magic_quotes_gpc.stripslashes() 去除字符串中的反斜杠

13、连接函数

implode(str,$arr) 将字符串数组按指定字符连接成一个字符串;implode()函数有个别名函数join

addcslashes —— 为字符串里面的部分字符添加反斜线转义字符

addslashes —— 用指定的方式对字符串里面的字符进行转义

bin2hex —— 将二进制数据转换成十六进制表示

chr —— 返回一个字符的ASCII码

chunk_split —— 按一定的字符长度将字符串分割成小块

convert_cyr_string —— 将斯拉夫语字符转换为别的字符

convert_uudecode —— 解密一个字符串

convert_uuencode —— 加密一个字符串

count_chars —— 返回一个字符串里面的字符使用信息

crc32 —— 计算一个字符串的crc32多项式

crypt —— 单向散列加密函数

explode —— 将一个字符串用分割符转变为一数组形式

fprintf —— 按照要求对数据进行返回,并直接写入文档流

get_html_translation_table —— 返回可以转换的HTML实体

html_entity_decode —— htmlentities ()函数的反函数,将HTML实体转换为字符

htmlentities —— 将字符串中一些字符转换为HTML实体

htmlspecialchars_decode —— htmlspecialchars()函数的反函数,将HTML实体转换为字符

htmlspecialchars —— 将字符串中一些字符转换为HTML实体

implode —— 将数组用特定的分割符转变为字符串

join —— 将数组转变为字符串,implode()函数的别名

levenshtein —— 计算两个词的差别大小

localeconv —— 获取数字相关的格式定义

ltrim —— 去除字符串左侧的空白或者指定的字符

md5_file —— 将一个文件进行MD5算法加密

md5 —— 将一个字符串进行MD5算法加密

metaphone —— 判断一个字符串的发音规则

money_format —— 按照参数对数字进行格式化的输出

nl_langinfo —— 查询语言和本地信息

nl2br —— 将字符串中的换行符“\n”替换成“<br />”

number_format —— 按照参数对数字进行格式化的输出

ord —— 将一个ASCII码转换为一个字符

parse_str —— 把一定格式的字符串转变为变量和值

print —— 用以输出一个单独的值

printf —— 按照要求对数据进行显示

quoted_printable_decode —— 将一个字符串加密为一个8位的二进制字符串

quotemeta —— 对若干个特定字符进行转义

rtrim —— 去除字符串右侧的空白或者指定的字符

setlocale —— 设置关于数字,日期等等的本地格式

sha1_file —— 将一个文件进行SHA1算法加密

sha1 —— 将一个字符串进行SHA1算法加密

similar_text —— 比较两个字符串,返回系统认为的相似字符个数

soundex —— 判断一个字符串的发音规则

sprintf —— 按照要求对数据进行返回,但是不输出

sscanf —— 可以对字符串进行格式化

str_ireplace —— 像str_replace()函数一样匹配和替换字符串,但是不区分大小写

str_pad —— 对字符串进行两侧的补白

str_repeat —— 对字符串进行重复组合

str_replace —— 匹配和替换字符串

str_rot13 —— 将字符串进行ROT13加密处理

str_shuffle —— 对一个字符串里面的字符进行随机排序

str_split —— 将一个字符串按照字符间距分割为一个数组

str_word_count —— 获取字符串里面的英文单词信息

strcasecmp —— 对字符串进行大小比较,不区分大小写

strchr —— 通过比较返回一个字符串的部分strstr()函数的别名

strcmp —— 对字符串进行大小比较

strcoll – 根据本地设置对字符串进行大小比较

strcspn —— 返回字符连续非匹配长度的值

strip_tags —— 去除一个字符串里面的HTML和PHP代码

stripcslashes —— 反转义addcslashes()函数转义处理过的字符串

stripos —— 查找并返回首个匹配项的位置,匹配不区分大小写

stripslashes —— 反转义addslashes()函数转义处理过的字符串

stristr —— 通过比较返回一个字符串的部分,比较时不区分大小写

strlen —— 获取一个字符串的编码长度

strnatcasecmp —— 使用自然排序法对字符串进行大小比较,不区分大小写

strnatcmp —— 使用自然排序法对字符串进行大小比较

strncasecmp —— 对字符串的前N个字符进行大小比较,不区分大小写

strncmp —— 对字符串的前N个字符进行大小比较

strpbrk —— 通过比较返回一个字符串的部分

strpos —— 查找并返回首个匹配项的位置

strrchr —— 通过从后往前比较返回一个字符串的部分

strrev —— 将字符串里面的所有字母反向排列

strripos —— 从后往前查找并返回首个匹配项的位置,匹配不区分大小写

strrpos —— 从后往前查找并返回首个匹配项的位置

strspn —— 匹配并返回字符连续出现长度的值

strstr —— 通过比较返回一个字符串的部分

strtok —— 用指定的若干个字符来分割字符串

strtolower —— 将字符串转变为小写

strtoupper —— 将字符串转变为大写

strtr —— 对字符串比较替换

substr_compare —— 对字符串进行截取后的比较

substr_count —— 计算字符串中某字符段的出现次数

substr_replace —— 对字符串中的部分字符进行替换

substr —— 对字符串进行截取

trim —— 去除字符串两边的空白或者指定的字符

ucfirst —— 将所给字符串的第一个字母转换为大写

ucwords —— 将所给字符串的每一个英文单词的第一个字母变成大写

vfprintf —— 按照要求对数据进行返回,并直接写入文档流

vprintf —— 按照要求对数据进行显示

vsprintf —— 按照要求对数据进行返回,但是不输出

wordwrap —— 按照一定的字符长度分割字符串

1,快速创建数组的函数range()

比如range()函数可以快速创建从1到9的数字数组:

<?php $numbers=range(1,9);   //用range直接创建1~9共9个数字组成的数组,以“1”开始“9”结束。

echo $numbers[1];        //输出创建的第二个数组值:2; echo $numbers[0];则输入第一个值:0。 ?>

当然,使用range(9,1)则创建了9到1的数字数组。同时,range()还可以创建从a到z 的字符数组:

<?php $numbers=range(a,z);

foreach ($numbers as $mychrs)    //遍历$numbers数组,每次循环当前单元值被赋给$mychrs

echo $mychrs." ";                    //output a b c d e f g h i j k l m n o p q r s t u v w x y z ?>

//foreach是一种遍历数组的简便方法,foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误,它有两种格式:

foreach (array_expression as $value)       statementforeach (array_expression as $key => $value)       statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key

使用字符数组时注意大小写,比如range(A,z)和range(a,Z)是不一样的。

range()函数还具有第三个参数,该参数的作用是设定步长,比如range(1,9,3)创建的数组元素是:1、4、7

2,PHP中常规数组的排序

一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排列,该功能函数为sort()。比如:

<?php $people=array('name','sex','nation','birth');

foreach ($people as $mychrs)

echo $mychrs." ";

sort($people);

echo "<br />---排序后---<br />";

foreach ($people as $mychrs)

echo $mychrs." ";?>

升序排序后的数组元素显示为 birth name nation sex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z)

Sort()函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。比如:<?php

echo "---按数字升序排序---<br />";

$num2=array('26','3',);

sort($num2,SORT_NUMERIC);

foreach ($num2 as $mychrs)

echo $mychrs." ";

echo "<br />---按字符升序排序---<br />";

$num3=array('26','3');

sort($num3,SORT_STRING);

foreach ($num3 as $mychrs)

echo $mychrs." ";?>

SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。

PHP中除了升序函数以外,还有降序或称反向排列的函数,就是rsort()函数,比如:

$num1=range(1,9);

rsort($num1);                //这里其实就相当于range(9,1)

3,PHP中关联数组的排序

PHP除了支持数字索引数组以外,还支持相关数组。比如如下数组就是一个相关(关联)数组:

$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');

使用sort($peoples)默认即是按照元素定义值的升序排序,在关联数组中可使用asort()函数表示按元素值升序排序,关联数组中最主要的则是可按照关键字(如xm、xb、mz等)的升序排序,该方法是用函数ksort()函数。<?php $peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');

foreach ($peoples as $mychrs)

echo $mychrs." ";

echo "<br />--按元素值升序排列--<br />";

asort($peoples);

foreach ($peoples as $mychrs)

echo $mychrs." ";

echo "<br />--按关键字升序排列--<br />";

ksort($peoples);

foreach ($peoples as $mychrs)

echo $mychrs." ";?>

和常规数组拥有sort()升序函数的反向排序rsort()降序函数相对应的,关联数组也有对应的降序函数:asort()函数和arsort()函数、ksort()函数和krsort()函数。

记忆:原型函数是sort(),其中a、k表示关联数组相关必须前置,反向排序使用r修饰。

4,PHP数组元素随机排序

PHP中使用shuffle()函数将数组元素进行随机的重新排序,每次都会显示不同的排序组合,比如:

<?php $fer=array('cnbruce','cnrose','cnjames','cnanne');

shuffle($fer);         //随即排序,每刷新一次页面则进行一次随机排序。

foreach ($fer as $mychrs)

echo $mychrs." ";?>

5,PHP数组按原顺序反向排序

PHP中可使用array_reverse()函数将数组元素按原顺序反向排序。比如:

<?php $fer=array('cnbruce','cnrose','cnjames','cnanne');

foreach ($fer as $mychrs)

echo $mychrs." ";

$fer=array_reverse($fer);     //将数组内元素按原顺序反向排序

echo "<br />--按原顺序反向--<br />";

foreach ($fer as $mychrs)

echo $mychrs." ";?>

output:   cnbruce cnrose cnjames cnanne

--按原顺序反向--

cnanne cnjames cnrose cnbruce

注意这里的 $fer=array_reverse($fer); 在此之前的任何排序函数均只是声明引用,并没有对原有数组进行重新定义,但当我调试该函数时则需要重新定义。这是因为array_reverse()是返 回原数组修改后的副本,如果不需要原有数组,可对原数组重新定义达到覆盖的目的,否则就另外定义数组保存副本,比 如:$fer_bak=array_reverse($fer_bak);

 

Httpd.conf:

ThreadsPerChild 250

MaxRequestsPerChild  0

ServerRoot "C:/Apache2.2"

Listen 80

LoadModule actions_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule asis_module modules/mod_asis.so

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule authn_default_module modules/mod_authn_default.so

LoadModule authn_file_module modules/mod_authn_file.so

LoadModule authz_default_module modules/mod_authz_default.so

LoadModule authz_groupfile_module modules/mod_authz_groupfile.so

LoadModule authz_host_module modules/mod_authz_host.so

LoadModule authz_user_module modules/mod_authz_user.so

LoadModule autoindex_module modules/mod_autoindex.so

LoadModule cgi_module modules/mod_cgi.so

LoadModule dir_module modules/mod_dir.so

LoadModule env_module modules/mod_env.so

LoadModule imagemap_module modules/mod_imagemap.so

LoadModule include_module modules/mod_include.so

LoadModule isapi_module modules/mod_isapi.so

LoadModule log_config_module modules/mod_log_config.so

LoadModule mime_module modules/mod_mime.so

LoadModule negotiation_module modules/mod_negotiation.so

LoadModule setenvif_module modules/mod_setenvif.so

LoadModule userdir_module modules/mod_userdir.so

#LoadModule usertrack_module modules/mod_usertrack.so

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

#LoadModule ssl_module modules/mod_ssl.so

##LoadModule php5_module C:/PHP/php5apache2_2.dll

##PHPIniDir C:/PHP

ServerAdmin admin@isougun.com

ServerName www.isougun.com

DocumentRoot "F:\website\w"

<Directory />

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    Deny from all

    Satisfy all

</Directory>

<Directory "F:\website\w">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

<IfModule dir_module>

    DirectoryIndex index.html index.php index.htm

</IfModule>

<FilesMatch "^\.ht">

    Order allow,deny

    Deny from all

</FilesMatch>

ErrorLog logs/error.log

LogLevel warn

<IfModule log_config_module>

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>

      # You need to enable mod_logio.c to use %I and %O

      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

    </IfModule>

    CustomLog logs/access.log common

</IfModule>

<IfModule alias_module>

    ScriptAlias /cgi-bin/ "C:/Apache2.2/cgi-bin/"

</IfModule>

<Directory "C:/Apache2.2/cgi-bin">

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

</Directory>

DefaultType text/plain

<IfModule mime_module>

    TypesConfig conf/mime.types

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    AddType application/x-httpd-php .php

    AddType application/x-httpd-php .html .htm

</IfModule>

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

NameVirtualHost *:80

<VirtualHost *:80>

ServerName phpmyadmin.com

DirectoryIndex index.html index.htm index.php index.asp

DocumentRoot "F:\www\phpMyAdmin"

<Directory "F:\www\phpMyAdmin">

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerName mysqlweb.com

DirectoryIndex index.html index.htm index.php index.asp

DocumentRoot "F:\www\phpMyAdmin"

<Directory "F:\www\phpMyAdmin">

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

</Directory>

</VirtualHost>

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

PHPIniDir "C:/Program Files/PHP/"

LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"

#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

SEO:http://www.8nm.net/google2149.html

PHP SESSION

<?php session_start();

session_register("username");

$_SESSION[''username'']=''user'';

这个页面是给session变量附值,与数据库结结合方法也是一样的。

我们可以根据需要设置session的属性。

page2:session1.php

<?php session_start();

echo $_SESSION[''username''];

这个页面主要是输出session的值,但是我们要注意。session_start();

一定要在每次使用之前打开。

setcookie("username",$adminname);

<?php echo $_COOKIE['username'];?>

setcookie("username"); //注销cookie

注:cookie 只支持各个文件放在同一级下,不支持放在不同级下

例如:administrator/checkadmin.php login.php index.php这样不行,必须是:administrator/checkadmin.php,

administrator/login.php,administrator/index.php

格式化显示时间:

<?php echo date("Y-m-d",strtotime($row_rsLesson['N_Date']));?>

将 $row_rsLesson['N_Date']) 改为你的时间记录字段内容

输出的格式是: 年-月-日 你可以根据要求设定,例如:"m-d" 或者 "mdHi"等

这里用到两个函式 一个 是date() 一个 是strtotime()

date() :传入时间戳值,将时间戳格式化传回

strtotime () 将任何英文文本的日期时间描述解析为 UNIX 时间戳

substr函数用法:

 string substr(string string, int start, int [length])  参数string为要操作的字符串

  参数start为你要截取的字符串的开始位置,若start为负数时,则表示从倒数第start开始截取length个字符

  可选参数length为你要截取的字符串长度,若在使用时不指定则默认取到字符串结尾。若length为负数时,则表示从start开始向右截取到末尾倒数第length个字符的位置

用法: 1、从第4个字符开始截取到字符串末尾,类似asp中的left:

  < ?php $str = "www.designline.cn"; echo substr($str,4); ?>  输出: designline.cn

  2、PHP substr函数从右边截取3个字符,类似asp中的right:

  < ?php $str = "www.designline.cn"; echo substr($str,-3); ?> 输出:.cn

  3、PHP substr函数从第4个字符开始截取6个字符:

  < ?php $str = "www.designline.cn"; echo substr($str,4,6); ?> 输出:design

  4、有时我们知道一个字符串的开始和结尾,中间是不定长的字符,这时除了用PHP substr函数的正则外我们还可以用substr实现(当然要得到中间的字符方法有N种,在此只是举例substr的应用):

< ?php $str = "< |>www.designline.cn< |>"; echo substr($str,3,-3); ?>  输出:www.designline.cn

fgets函数:

  从流中读一行或指定个字符, 原型是char *fgets(char *s, int n, FILE *stream); 从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。   形参注释:*string结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针 例:如果一个文件的当前位置的文本如下 Love ,I Have But .....如果用fgets(str1,4,file1); 则执行后str1="Lov",读取了4-1=3个字符, 而如果用fgets(str1,23,file1); 则执行str="Love ,I Have",读取了一行(不包括行尾的'n')。

PHP重定向三法:

方法一: <?php

$GoTo="index.php";// 如果这里的目标链接取自数据库就实现了动态转向

header(sprintf("Location: %s", $GoTo)); ?>

方法二: <?php echo "<script>window.location =\"$PHP_SELF\";</script>";?>

方法三: <?php echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=index.php\">";?>

防止单引号,双引号在接受页面转义:

PHP页面中如果不希望出现以下情况: 单引号被转义为 \' 双引号被转义为 \"

那么可以进行如下设置以防止:

方法一:在php.ini中设置:magic_quotes_gpc = Off

方法二: $str=stripcslashes($str)

比较两个日期相差几天

<?PHP $Date_1="2003-7-15";//也可以是:$Date_1="2003-7-15 23:29:14";

$Date_2="1982-10-1";

$d1=strtotime($Date_1);

$d2=strtotime($Date_2);

$Days=round(($d1-$d2)/3600/24);

Echo   "偶已经奋斗了 $Days 天^_^";?>

想知道他是通过哪个网站连接到本页

<?php //必须通过超级连接进入才有输出 echo $_SERVER['HTTP_REFERER'];?>

读取当前地址栏信息

$s="http://{$_SERVER['HTTP_HOST']}:{$_SERVER["SERVER_PORT"]}{$_SERVER['SCRIPT_NAME']}";

$se='';

foreach ($_GET as $key => $value) {     

$se.=$key."=".$value."&";     }   
$se=Preg_Replace("/(.*)&$/","$1",$se);

$se?$se="?".$se:"";

echo   $s."?$se";

取得用户的真实IP

<? function iptype1 () {

if (getenv("HTTP_CLIENT_IP")) {

   return getenv("HTTP_CLIENT_IP");

} else {

   return "none";

} }
function iptype2 () {

if (getenv("HTTP_X_FORWARDED_FOR")) {

   return getenv("HTTP_X_FORWARDED_FOR");

} else {

   return "none";

} }
function iptype3 () {

if (getenv("REMOTE_ADDR")) {

   return getenv("REMOTE_ADDR");

} else {    return "none"; } }
function ip() {

$ip1 = iptype1();

  $ip2 = iptype2();

$ip3 = iptype3();

if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {

   return $ip1;

} elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {

   return $ip2; } elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {

   return $ip3; }   else {   return "none";

} }

echo ip();

?>

从数据库读取三天内的所有记录

首先表格里要有一个DATETIME字段记录时间,
格式为'2003-7-15 16:50:00'
SELECT * FROM `xltxlm` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`) <= 3;

计算当前在线人数

<?php //首先你要有读写文件的权限//本程序可以直接运行,第一次报错,以后就可以
  $online_log = "count.dat"; //保存人数的文件,

  $timeout = 30;//30秒内没动作者,认为掉线

  $entries = file($online_log);

  $temp = array();
  for ($i=0;$i<count($entries);$i++) {

   $entry = explode(",",trim($entries[$i]));

   if (($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {

    array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp

   }   }

   array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n"); //更新浏览者的时间

  $users_online = count($temp); //计算在线人数

  $entries = implode("",$temp);
  //写入文件

  $fp = fopen($online_log,"w");

   flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作

   fputs($fp,$entries);

   flock($fp,LOCK_UN);

   fclose($fp);

   echo "当前有".$users_online."人在线"; ?>

强制类型强制转换

·  (int),(integer)            - 转换成整型

·  (bool),(boolean)           - 转换成布尔型

·  (float),(double),(real)    - 转换成浮点型

·  (string)                   - 转换成字符串

·  (array)                    - 转换成数组

·  (object)                   - 转换成对象  注意在括号内允许有空格和制表符 还可以用settype ( mixed var, string type )进行强制转换.

安装Apache+PHP+mySQL

1、   Apache        2.0.47

(2)下载到本地硬盘后,双击就可安装。在这安装过程中要求输入主机名、服务器名以及管理员信箱,可以分别输入:localhost、localhost、abc@ddd.com即可。安装路径为C:\。安装成功后,就自动启动服务。

(3)此时可以通过建立一个index.html文件来测试。默认站点为:\Apache2\htdocs\

(4)修改配置文件:\Apache2\conf\httpd.conf

可以通过文本编辑器来修改httpd.conf,该文件很大有1000多行,开头为#号的表示注释内容,不起作用。共分3节(session):

Global Environment                    全局环境变量

Main Server Configuration                   服务器设置

Virtual Hosts                                        虚拟主机设置

可能需要修改的是:

ServerName localhost:80                                         服务器域名,可以www.hyjys.net:80

DocumentRoot "C:/Apache2/Apache2/htdocs"  存放网页的目录

      改为:DocumentRoot "d:/www"

DirectoryIndex index.html index.html.var               默认索引文件

      改为:DirectoryIndex index.htm index.html index.php

AddDefaultCharset ISO-8859-1                             显示编码

改为:AddDefaultCharset gb2312

此时,Apache就可以充当web服务器。

2、PHP 4.3.5

有两类:PHP zip package(压缩包)和 PHP install(安装)这里选择压缩包型,以模块方式安装。

(1)         下载到本地硬盘后,将它解压缩到一个目录即可,一般为C:\PHP4

(2)         配置PHP.INI

首先将php.ini-recommerded改名为php.ini,并拷贝到Apache目录下,和http.conf一样,所有PHP的配置选项都记录在php.ini中,可能需要修改的是:

extension_dir = "./"                            改为:extension_dir = "c:/php4/extensions"

doc_root =                                            改为:doc_root ="d:/www"

      session.save_path = /tmp               改为:session.save_path = "c:/winnt/temp"

      ;upload_tmp_dir =                       改为:upload_tmp_dir ="c:/winnt/temp"

;default_charset = "iso-8859-1"        改为:default_charset = "gb2312"

register_globals = off                            改为:nregister_globals = On

保存PHP.INI文件。

(4)      PHP目录下的php4ts.dll文件拷贝到C:\winnt\system32目录下。

(5)      最后在Httpd.conf文件末尾添加如下三行:

一是:添加服务器可识别的php扩展名,这样在浏览器地址中输入以.php为扩展名的文件名,服务器会去调用PHP解释程序对文件进行解析,而不会输出原样:

AddType application/x-httpd-php .php

二是:告诉服务器用哪个程序来进行解析:

Action application/x-httpd-php "c:/php4/php.exe"

三是:LoadModule php4_module C:/PHP4/sapi/php4apache2.dll 

(6)      保存http.conf,重新启动Apache服务。

(7)      在d:\www目录下,用记事本新建一个index.php文件,只许如下三行:<?PHP phpinfo(); ?>

保存文件,打开浏览器,在地址栏中输入http://localhost/index.php,如查能看到一个很长的有关php的表单,说明安装成功。

3、mySQL    4.0.18

(1)      下载路径:http://dev.mysql.com/downloads/

(2)      有两类:mySQL zip package(压缩包)和 mySQL install(安装)

这里选择压缩包型。

(3)      下载到本地硬盘后,将它解压缩到一个目录即可,一般为C:\mySQL4

(4)      配置my.cnf

首先将my-large改名为my.cnf,并拷贝到C盘根目录下,和http.conf一样,所有mySQL的配置选项都记录在my.cnf中,可能需要修改的是:

#basedir = d:/mysql/                          改为: basedir = c:/mysql4/

#datadir = d:/mysql/data/            改为: datadir = c:/mysql4/data/

(5)      在”运行”输入:C:\mysql4\bin\mysqld-nt.exe –i         是win2000下的常驻内存程序

(6)      打开“开始”按钮下的“程序”=》“管理工具”=》“服务”,找到“mysql”服务,启动它。至此,mysql安装完成。

(7)      C:\mysql4\bin\winmysqladmin.exe,在第一次用它时,需要建立管理员名及密码,我分别设置为root和(yourpassword)。关闭它后,程序自动在状态行下建立一个“红绿灯”的小图标。

(8)      phpMyAdmin 2.5.6

下载地址:http://aonow.net/soft/564.htm

下载的软件解压到D:\www目录,即可使用:

               在IE地址栏中输入:localhost/phpmyadmin/,选择语言为:中文。

为了安全,一般需将phpmyaddmin目录更改,或更改登记用户名和密码。

第一節      產生圖形 產生圖形的網頁程序如下:<? //image.php//定義輸出形態

第二節      Header("Content-type: image/gif") ;//定義圖形$img = ImageCreate(300, 300);//設定顏色$white = ImageColorAllocate($img, 255, 255, 255);

第三節      $black = ImageColorAllocate($img, 0, 0, 0); //其他敘述…

第四節      //製成GIFImageGif($img); //釋放記憶體

第五節      ImageDestory($img) ;?>

第十八章 錯誤處理 這裡所要處理的錯誤為語法或執行時期的錯誤,至於邏輯上的錯誤就要靠使用者經驗的判斷。第一節 常見的錯誤代碼一、語法錯誤 敘述中的括弧或雙引號不成對的語法的錯誤

訊息:Parse error:…※產生此錯誤,程式會立即停止

二、語意錯誤

如果函數中的參數各數不對,此屬語意錯誤

訊息:

Warning:…

※產生此錯誤,程式仍會繼續往下執行

三、重大錯誤

函數名稱錯誤,或指定檔案不存在等,屬重大錯誤

訊息:Fatal:…

※產生此錯誤,程式會立即停止

第二節 錯誤處理 我們可用兩個方法來處理錯誤

一、抑制錯誤訊息 用算符”@”可抑制錯誤的產生

例如:

@mysql($db, $user, $pswd);

二、自訂錯誤訊息

再配合die函式可在錯誤時立即中止程式例如:

@mysql($db, $user, $pswd) or die(“No database connect”);

第三節 最長執行時間

PHP程式的最長執行時間為30秒,如果超過此時間會出現 PHP Time Out的錯誤訊息。如果有需要延長執行

時間,可用:

set_time_limit(秒數)

註:如果每頁都需要加長執行時間,則修改php.ini。

  评论这张
 
阅读(1119)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018