获取文章中的图片

//从文章中搜索图片并获取图片
$SoImages  = '~<img [^\>]*\ />~';
preg_match_all($SoImages,$post->post_content,$Images);
$PictureAmount=count($Images[0]); //获取图片数量

//处理所有的图片
for($i=0;$i<$PictureAmount;$i++){
	echo $Images[0][$i]  //处理图片,语句可以自定义,第一张图片为$Images[0][0];
	}

//通过使用switch控制语句处理第一张图片,也可以使用if...else...elseif语句来实现,具体逻辑请自定义
switch($PictureAmount>0){
	case 1:
	  echo $Images[0][0]; //输出第一张图片
	  break;
	default:
	  $ImagesUrl=bloginfo('stylesheet_directory')."/images/1.jpg"; //当文章无图片时默认输出的图片
	}

/*获得文章中的图片链接路径的代码
*首先使用上面第一段的语句从文章搜索并获取图片
*然后通过运行正则表达式来分析图片代码,然后得到匹配的字符
*以下只列出其中的一种正则表达式代码,有兴趣的童鞋可以自己编写
*/

//获取一张图片,例如获取第一张图片$Images[0][0],其代码样例为:<img alt="Google" title="Google" id="logo" src="/intl/zh-CN/images/logo_cn.gif" width="276" height="110" border="0"  />
$ImgUrl = $Images[0][0];
$SoImgAddress="/\<img.*?src\=\"(.*?)\"[^>]*>/i";  //正则表达式语句
preg_match($SoImgAddress,$ImgUrl,$imagesurl);  //分析
echo $imagesurl[1]; //得到并处理路径:/intl/zh-CN/images/logo_cn.gif?>

PHP 数组转化为字符串

$Array=array(
“text1″ => “textone”,
“text2″ => “texttwo”,
);
$string=serialize($Array);
$Array=unserialize($string);
print($Array);

PHP编程中八种常见的文件操作方式

1 打开文件

  resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )

  $handle = fopen(filename,mode)//打开文件,返回代表此文件的资源的句柄

  文件名称可以使用相对路径或者绝对路径也可以使用网络协议模式,打开模式具有r\r+\w\w+\a\a+\x\x+\b

  在操作二进制文件时如果没有指定 ‘b’ 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

  为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 ‘b’ 标记。

  以下是几种打开文件的方式

  $fp = @fopen(‘log.txt’,”rb”);

  $fp = @fopen(‘../log.txt’,”rb”);

  $fp = @fopen(“http://www.runer.com.cn/default.htm”,”rb”);//还可以使用ftp和ghoper等协议,必须启用php.ini文件中的allow_url_fopen选项

2 关闭文件

  使用fclose()关闭文件,

  bool fclose ( resource handle )//关闭一个已打开的文件指针

3 读取文件

string fgets ( int handle [, int length] )从文件指针中读取一行,在二进制文件上尝试fgets会产生不可预测的结果

  如果不指定长度,默认读取1K数据,碰到换行符(包括在返回值中)、EOF 或者已经读取了 length – 1 字节后停止

  string fgetss ( resource handle [, int length [, string allowable_tags]] )从文件指针中读取一行并过滤掉 HTML 标记

  fgetc()读取单个字符

  fread()读取任意二进制数据

4 判断文件读取的状态

文件指针最初位于文件的开头(0),或者文件的末尾

  feof()可以判断文件是否已经到末尾(到末尾后函数返回TRUE)

  filesize()函数返回文件的大小

5 写入文件

fwrite()函数执行文件写入

  对于二进制数据,必须指定第三个参数,它包含写入到磁盘的数据字节数

  $result = @fwrite($fp,$binary_data,mb_strlen($binary_data,’8bit’));

6 文件权限和其他信息

  is_readable()//判断文件是否可读

  is_writeable()//判断文件是否可写

  is_writable()//判断文件是否可写

  fileperms()//判断文件的权限(UNIX风格的文件权限测试函数)

  file_exists()//是否存在这个文件

  fileowner()//判断文件所属用户

  filegroup()//判断文件所属组

7 删除和重命名文件

  unlink()//删除文件

  rename()//重命名文件

8 访问目录

  目录访问建议使用前向斜线”/”,兼容windows和unix系统

  basename()//返回不包括路径信息的文件名

  dirname()//返回文件名的目录部分

  realpath()//接受相对路径,返回文件的绝对路径

  pathinfo()//提取给定路径的目录名,基本文件名和扩展名

  opendir()//打开目录,返回资源句柄

  readdir()//读取目录项

  rewinddir()//将读取指针返回开头

  closedir()//关闭读取句柄

  chdir()//改变当前脚本执行期间的当前工作目录

  mkdir()//创建目录

  rmdir()删除目录b

数组处理中的array_unique()与array_merge()

array_unique()定义和用法

array_unique() 函数移除数组中的重复的值,并返回结果数组。 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。 返回的数组中键名不变。

提示和注释

注释:被返回的数组将保持第一个数组元素的键类型。

例子

<?php
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
print_r(array_unique($a));
?>

输出:

Array ( [a] => Cat [b] => Dog )

array_merge()定义和用法

array_merge()数组的作用是将一个或多个数组合并为一个数组。

Example 1 案例1

<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
?>

The output of the code above will be: 上述代码将输出下面的结果:

Array ( [a] => Horse [b] => Cat [c] => Cow )

Example 2 案例2

Using only one array parameter. 仅使用一个数组参数:

<?php
$a=array(3=>"Horse",4=>"Dog");
print_r(array_merge($a));
?>

The output of the code above will be: 上述代码将输出下面的结果:

Array ( [0] => Horse [1] => Dog )