当前位置: 编程技术>php
本页文章导读:
▪使用PHP求两个文件的相对路径
代码如下:function compare($ph1,$ph2){ $ret = ''; $_f1Arr = explode("/",$ph1); $_f2Arr = explode("/",$ph2); $f1 = array_pop($_f1Arr); $f2 = array_pop($_f2Arr); for($i=0;$i<count($_f1Arr);$i++){ .........
▪基于PHP服务端图片生成缩略图的方法详解
代码如下:<?php//定义缩略图片尺寸$picSize = array( '100_100'=> 1, '200_100'=> 1 );$imagePath = "../image/";function parseUrl(/blog_article/$url/index.html){ preg_match("/(?P<n.........
▪解析thinkphp中的导入文件标签
第一个是import标签 ,导入方式采用类似ThinkPHP的import函数的命名空间方式,例如:
import标签(采用命名空间方式引入资源文件)
闭合
闭合标签
属性
file(必须):要引入的资源文件.........
[1]使用PHP求两个文件的相对路径
来源: 互联网 发布时间: 2013-11-30
代码如下:
function compare($ph1,$ph2){
$ret = '';
$_f1Arr = explode("/",$ph1);
$_f2Arr = explode("/",$ph2);
$f1 = array_pop($_f1Arr);
$f2 = array_pop($_f2Arr);
for($i=0;$i<count($_f1Arr);$i++){
if($_f1Arr[$i] !== $_f2Arr[$i])
break;
}
for($j= $i-1;$j<count($_f1Arr);$j++){
$ret .= "../";
}
for($i-1;$i<count($_f2Arr);$i++){
$ret .= $_f2Arr[$i].'/';
}
return $ret.$f2;
}
$file1 = "aaa/ddd/ccc/ddd/test/a.js";
$file2 = "aaa/ddd/ccc/ddd/test/b.js";
echo compare($file1,$file2);
?>
B对于A的相对路径。。。
[2]基于PHP服务端图片生成缩略图的方法详解
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
//定义缩略图片尺寸
$picSize = array(
'100_100'=> 1,
'200_100'=> 1
);
$imagePath = "../image/";
function parseUrl(/blog_article/$url/index.html){
preg_match("/(?P<name>[\w\d]+)_w(?P<width>\d+)_h(?P<height>\d+)\.(?P<ext>\w+)/",$url,$match);
return $match;
}
$urlArr = explode("/",$_SERVER['REQUEST_URI']);
$imgName = $urlArr[count($urlArr)-1];
$picInfo = parseUrl(/blog_article/$imgName/index.html);
//错误尺寸
if(empty($picInfo['width']) || empty($picInfo['height']) ||
!array_key_exists($picInfo['width'].'_'.$picInfo['height'],$picSize)) die('不存在该尺寸图片');
$originalPic = $imagePath.$picInfo['name'].'/'.$picInfo['name'].'.'.$picInfo['ext'];
//原始图不存在
if(!file_exists($originalPic)) die("图片不存在!");
/**
*等比例压缩图片
*/
switch($picInfo['ext']){
case 'jpg':
$orgImg = ImageCreateFromJpeg($originalPic);
break;
default:
break;
}
$owidth = ImageSX($orgImg); //原始尺寸
$oheight = ImageSY($orgImg);
$tW = $picInfo['width'];
$tH = $picInfo['height'];
//获取缩略图尺寸
if($owidth/$oheight > $tW/$tH){
$tH = intval($tW * $oheight/$owidth);
}else{
$tW = intval($tH * $owidth/$oheight);
}
//生成背景图
$new_img = ImageCreateTrueColor($picInfo['width'], $picInfo['height']);
$bgColor = imagecolorallocate($new_img,255,255,255);
if (!@imagefilledrectangle($new_img, 0, 0, $picInfo['width']-1, $picInfo['height']-1, $bgColor)) {
echo "无法创建背景图"; //@todo记录日志
exit(0);
}
if (!@imagecopyresampled($new_img, $orgImg, ($picInfo['width']-$tW)/2, ($picInfo['height']-$tH)/2, 0, 0, $tW, $tH, $owidth, $oheight)) {
echo "生成图片失败";
exit(0);
}
//生成图片
ob_start();
imagejpeg($new_img);
$_newImg = ob_get_contents();
ob_end_clean();
file_put_contents($imagePath.$picInfo['name']."/".$imgName, $_newImg);
header("Content-type:image/jpeg; charset=utf-8");
imagejpeg($new_img);
?>
使用时候绑定apache conf 的 documentError 404 的handler 为此文件。。
[3]解析thinkphp中的导入文件标签
来源: 互联网 发布时间: 2013-11-30
第一个是import标签 ,导入方式采用类似ThinkPHP的import函数的命名空间方式,例如:
示例:
<import type='js' file="Js.Util.Array" />
Type属性默认是js, 所以下面的效果是相同的:
<import file="Js.Util.Array" />
还可以支持多个文件批量导入,例如:
<import file="Js.Util.Array,Js.Util.Date" />
导入外部CSS文件必须指定type属性的值,例如:
<import type='css' file="Css.common" />
上面的方式默认的import的起始路径是网站的Public目录,如果需要指定其他的目录,可以使用basepath属性,例如:
<import file="Js.Util.Array" basepath="./Common" />
第二个是load标签,通过文件方式导入当前项目的公共JS或者CSS
例如:
<load href="/Public/Js/Common.js" />
<load href="/Public/Css/common.css" />
在href属性中可以使用特殊模板标签替换,例如:
<load href="/blog_article/__PUBLIC__/Js/Common.js" />
Load标签可以无需指定type属性,系统会自动根据后缀自动判断。
系统还提供了两个标签别名js和css 用法和load一致,例如:
<js href="/blog_article/__PUBLIC__/Js/Common.js" />
<css href="/Public/Css/common.css" />
import标签(采用命名空间方式引入资源文件)
闭合
闭合标签
属性
file(必须):要引入的资源文件,支持变量
type(可选):引入的资源文件类型,默认为js,支持js css和php
basepath(可选):命名空间的基础路径
示例:
<import type='js' file="Js.Util.Array" />
Type属性默认是js, 所以下面的效果是相同的:
<import file="Js.Util.Array" />
还可以支持多个文件批量导入,例如:
<import file="Js.Util.Array,Js.Util.Date" />
导入外部CSS文件必须指定type属性的值,例如:
<import type='css' file="Css.common" />
上面的方式默认的import的起始路径是网站的Public目录,如果需要指定其他的目录,可以使用basepath属性,例如:
<import file="Js.Util.Array" basepath="./Common" />
第二个是load标签,通过文件方式导入当前项目的公共JS或者CSS
load标签(采用url方式引入资源文件)
闭合
闭合标签
属性
href(必须):要引入的资源文件url地址,支持变量
例如:
<load href="/Public/Js/Common.js" />
<load href="/Public/Css/common.css" />
在href属性中可以使用特殊模板标签替换,例如:
<load href="/blog_article/__PUBLIC__/Js/Common.js" />
Load标签可以无需指定type属性,系统会自动根据后缀自动判断。
系统还提供了两个标签别名js和css 用法和load一致,例如:
<js href="/blog_article/__PUBLIC__/Js/Common.js" />
<css href="/Public/Css/common.css" />
最新技术文章: