月份:2013年5月
PHP 调试和异步调试工具类
function gddebug() { $arrays = func_get_args (); echo "n<pre>"; foreach ( $arrays as $value ) { if (is_array ( $value ) || is_object ( $value )) { ksort ( $value ); echo htmlspecialchars ( print_r ( $value, true ) ) . "rn"; } elseif (is_string ( $value )) { echo "string(" . strlen ( $value ) . ") "" . htmlspecialchars ( $value ) . ""rn"; } else { var_dump ( $value ); } } echo "</pre>"; }
异步调试工具类
function gdsyndebug() { $arrays = func_get_args (); $filename = dirname ( __FILE__ ) . "/gdsyndebug.txt"; file_put_contents ( $filename, "===================" . date ( "Y-m-d H:i:s" ) . "====n", FILE_APPEND ); file_put_contents ( $filename, 'url http://' . $_SERVER ['HTTP_HOST'] . $_SERVER ['PHP_SELF'] . "n", FILE_APPEND ); foreach ( $arrays as $value ) { if (is_array ( $value ) || is_object ( $value )) { ksort ( $value ); file_put_contents ( $filename, print_r ( $value, true ) . "n", FILE_APPEND ); } elseif (is_string ( $value )) { file_put_contents ( $filename, "string(" . strlen ( $value ) . ") "" . $value . ""n", FILE_APPEND ); } else { file_put_contents ( $filename, var_export ( $value, true ) . "n", FILE_APPEND ); } } }
转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827
PclZip 操作及文件授权+设置用户,用户组
经常出现这种窘境,在公司上传东西的时候,需要传个easyui目录..再加个yiiframework哩。而且服务器没有linux的操作权限,zip的扩展也是没有的时候…如果以上都不是问题就跳出去吧呵呵。
http://www.phpconcept.net/pclzip/user-guide/18
这时肯定要将代码压缩下,传压缩包再通过代码去解压。
//普通的打包操作 $path = dirname ( __FILE__ ) . '/fw.zip';//目标zip require_once (dirname ( __FILE__ ) . '/pclzip.lib.php'); $archive = new PclZip ( $path ); $archive->create ( "fw" );//当前需要打包的目录 if ($archive->extract () == 0) { die ( "Error : " . $archive->errorInfo ( true ) ); }
//打包指定目录,然后移除目录前缀 $path = dirname ( __FILE__ ) . '/fw.zip'; require_once (dirname ( __FILE__ ) . '/pclzip.lib.php'); $archive = new PclZip ( $path ); $archive->add ( "C:/ooxx/ooxx/htdocs/test/zip/fw", PCLZIP_OPT_REMOVE_PATH, "/ooxx/ooxx/htdocs/test/zip/" ); // 压缩); if ($archive->extract () == 0) { die ( "Error : " . $archive->errorInfo ( true ) ); }
//普通的解包 $path = dirname ( __FILE__ ) . '/fw.zip'; require_once (dirname ( __FILE__ ) . '/pclzip.lib.php'); $archive = new PclZip ( $path ); if ($archive->extract () == 0) { die ( "Error : " . $archive->errorInfo ( true ) ); }
看一送一,因为解压后的特殊原因,权限是只有应用的,如果ftp操作肯定是不行滴
//迭代授权,这样就绝配了。 function chmod_R($path, $filemode) { if (! is_dir ( $path )) return chmod ( $path, $filemode ); $dh = opendir ( $path ); while ( $file = readdir ( $dh ) ) { if ($file != '.' && $file != '..') { $fullpath = $path . '/' . $file; if (! is_dir ( $fullpath )) { if (! chmod ( $fullpath, $filemode )) return FALSE; } else { if (! chmod_R ( $fullpath, $filemode )) return FALSE; } // echo $fullpath."<br>"; } } closedir ( $dh ); if (chmod ( $path, $filemode )) return TRUE; else return FALSE; }
//用户和用户组的设置 function recurse_chown_chgrp($mypath, $uid, $gid) { $d = opendir ( $mypath ); while ( ($file = readdir ( $d )) !== false ) { if ($file != "." && $file != "..") { $typepath = $mypath . "/" . $file; // print $typepath. " : " . filetype ($typepath). "<BR>" ; if (filetype ( $typepath ) == 'dir') { recurse_chown_chgrp ( $typepath, $uid, $gid ); } chown ( $typepath, $uid ); chgrp ( $typepath, $gid ); } } }
转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827
AR 使用其它数据库进行操作
config.php里加多配置
'db2'=>array( 'class'=>'CDbConnection', ),
AR中覆盖方法,设置其它的数据库
特别需要注意 $odb这个独立的处理,否则在连续操作的过层中,会有数据库链接变量冲突的相关问题。
public static $odb=null; public function getDbConnection() { if(self::$odb!==null) return self::$odb; else { self::$odb=Yii::app()->getComponent('db2'); if(self::$odb instanceof CDbConnection) return self::$odb; else throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.')); } }
转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827
百度编辑器小记
不用多说了,直接上链接。
强悍的截图,对于有需要,但又没资源做这类插件的…
配置相关:
相对于常见mvc.脚本的引用通常不是同级目录的,编辑的配置需要留意的地方有
1.ueditoreditor_api.js
baseURL//脚本的引用
2.ueditor/editor_config.js
window.UEDITOR_HOME_URL //插件目录配置
snapscreenHost: location.href.replace(/^http://([^/]+)/.*/,'$1') //截屏的服务器配置。
langPath:URL +"lang/" //语言包,默认被注释
themePath:URL +"themes/" //样式包,默认被注释