下面方法很简单,我们只要把$tmppath里面所有的以http://开的网站全部去了,
$picpath =preg_replace("/[a-za-z]+://[^ |/|s]*/",'',$tmppath);//去掉网址部分
这个正则表达式是获取字符串中所有的以src src不区分大小的获取所有图片的地址出来,并且保存在$tmpdata[2]中。
preg_match_all("/src=["|'|s|s]([^|/|>]*){0,}(([^>]*).(gif|jpg|png))/isu",$body,$tmpdata);
$picspath =array_unique($tmpdata[2]);//body中所有图片的地址
php教程 cookies 删除,赋值方法
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 php,您能够创建并取回 cookie 的值
语法
setcookie(name, value, expire, path, domain);
**
* 设置cookie
* n 名称
* c 值
* e 有效期 0 默认 一个月 1 关闭立即失效
*/
function w_cookie($n, $c, $e = 0,$isdes=1)
{
if($isdes==1){$c=endes($c,deskey);}
$exp = time() + 3600 * 24 * 30;
if($e == 0)
{
setcookie($n, $c, $exp,"/");
}
else
{
setcookie($n, $c,0,"/");
}
}
//关闭cookie方法
w_cookie('bb', 'www.111cn.net', $e = 0,$isdes=1);
更多详细内容请查看:http://www.111cn.net/phper/php/34040.htm
更详细的方法
<?php
function set_cronology($name,$value,$duration=7){
$duration=time()+(3600*24*$duration);
$max_stored_values=5;
if(isset($_cookie[$name])){
foreach($_cookie[$name] as $prop_crono=>$val_crono){
if($val_crono==$value)
return;
}
if($prop_crono<$max_stored_values)
setcookie($name.'['.($prop_crono+1).']',$value,$duration);
else{
array_shift($_cookie[$name]);
setcookie("$name[$max_stored_values]",$value,$duration);
}
}else
setcookie($name.'[0]',$value,$duration);
return;
}
?>
注释:setcookie() 函数必须位于 <html> 标签之前。在发送 cookie 时,cookie 的值会自动进行 url 编码,在取回时进行自动解码(为防止 url 编码,请使用 setrawcookie() 取而代之)。
php教程 ini_get错误设置方法
利用ini_set可以快速的修改php.ini配置设置哦,无需打开php.ini就可以了,特别是虚拟主机时你没有修改php.ini的权限时就会发现这个函数的作用了,下面看几个实例吧。
*/
//ini_set具有更改php.ini设置的功能。此函数接收两个参数:需要调整的配置变量名,以及变量的新值。
更多详细内容请查看:http://www.111cn.net/phper/php-function/34292.htm
<?php
error_reporting(e_all); //1.指定错误报告,错误类型为全部
//ini_set("error_reporting",e_all); //临时改变配置文件的值
//ini_get("upload_max_filesize"); //获取配置文件的值
ini_set("display_errors","off"); //2.关闭配置文件中的显示错误
ini_set("log_errors","on"); //3.开启错误日志功能
ini_set("error_log","c:/error.log"); //4.指定错误文件(可写)
error_log("this is a error message!!!!"); //输出错误信息
?>
错误处理
1.语法错误
2.运行时的错误
3.逻辑错误
错误报告:
错误:e_error
警告:e_warning
注意:e_notice
建议:
开发阶段:开发是输出所有的错误报告,有利于调试程序
运行阶段:不要让程序输出任何一种错误报告
将多个数组合并起来
1.合并数组
array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:
view sourceprint?1 array array_merge (array array1 array2…,arrayn)
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
实例如下:
view sourceprint?1 $face = array("j","q","k","a");
2 $numbered = array("2","3","4","5","6","7","8","9");
3 $cards = array_merge($face, $numbered);
4 shuffle($cards);
5 print_r($cards);
这将返回如下所示的结果,运行代码:
view sourceprint?array ( [0] => a [1] => 4 [2] => 9 [3] => 3 [4] => k [5] => 7 [6] => 5 [7] => q [8] => 6 [9] => 8 [10] => 2 [11] => j )
2.递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:
view sourceprint?array array_merge_recursive( array key,array values )
示例如下:
view sourceprint?1 $class1 = array("john" => 100, "james" => 85);
2 $class2 = array("micky" => 78, "john" => 45);
3 $classscores = array_merge_recursive($class1, $class2);
4 print_r($classscores);
这将返回如下结果:
view sourceprint?array ( [john] => array ( [0] => 100 [1] => 45 ) [james] => 85 [micky] => 78 )
3.连接两个数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
view sourceprint?array array_merge(array array1,array array2[…,array arrayn])
注意,两个输入数组必须大小相同,不能为空。示例如下:
view sourceprint?1 $abbreviations = array("al","ak","az","ar");
2 $states = array("alabama","alaska","arizona","arkansas");
3 $statemap = array_combine($abbreviations,$states);
4 print_r($statemap);
这会返回:
view sourceprint?1 array ( [al] => alabama [ak] => alaska [az] => arizona [ar] => arkansas )
ange($low, $high),range($low, $high, $step);//创建顺序值的数组如:range(1,4)为(1,2,3,4)又如range('a','z')
each($array)按顺序返回数组的当前元素,并且将下一个元素设置为当前元素;
reset($array)将数组当前元素重新设置到数组开始处
list()可以用来将一个数组分解为一系列的值,如 list($a,$b)=each($array)
shuffle($array),array_rand($arg, $num_req);对数组随机排序
array_reverse($input),array_reverse($input, $preserve_keys) 返回原数组的反向排序
sort($array);对数组排序
php教程数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应用.
先说说php数组的定义…php数组包含两个项,key和value,可以通过key来获取相应的value,其中key又可以是数值和关联的,如$array[0],$array[one]…
创建数组
php中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等,如
$array[0] = 1,$array = array(1,2,3); 一维数组,只包括三个值,属于数值型数组,引用时可用$array[0]来代表1,创建数值数组时可以省略索引.
$array = array(
1 => “one”,
2 => “two”,
3 => “three”,
4 => array(
“one” => 1,
“two” => 2,
“three” => 3
)
);
二维数组,同时又是关联数组,引用时可以$array[4][“one”]来代表1.
三维以上依此类推…
如果要批量创建数组,则可以通过下面这个函数:
array range ( mixed low, mixed high [, number step] )
如$array = range(1,6);代表array(1,2,3,4,5,6);
$array = range(a,f); 代表 array(a,b,c,d,e,f);
输出数组
php中输出数组的函数有比较多,常用的有
bool print_r ( mixed expression [, bool return] )
void var_dump ( mixed expression [, mixed expression [, ...]] )
还有像echo,print,printf都可以输出单个数组.