本文整理汇总了PHP中CUtils::str_replace_once方法的典型用法代码示例。如果您正苦于以下问题:PHP CUtils::str_replace_once方法的具体用法?PHP CUtils::str_replace_once怎么用?PHP CUtils::str_replace_once使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CUtils
的用法示例。
在下文中一共展示了CUtils::str_replace_once方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: downloadToPackage
//.........这里部分代码省略.........
}
if (count($fileNames) > 1) {
$packageName = 'miniyun';
} else {
$packageName = $fileNames[0];
}
//创建临时文件夹
$fileSystem = new CFileSystem();
MUtils::MkDirsLocal(DOCUMENT_TEMP . $userId);
$storePath = DOCUMENT_TEMP . $userId . "/" . $packageName;
$array = array();
$ids = explode(",", $code);
foreach ($ids as $id) {
$file = MiniFile::getInstance()->getById($id);
if (empty($file)) {
continue;
}
if ($file["file_type"] == MConst::OBJECT_TYPE_FILE) {
//属于自己的文件
$array[] = $file;
} else {
//不属于自己的文件
//查询共有多少个子目录
$array[] = $file;
$files = MiniFile::getInstance()->getChildrenByPath($file["file_path"]);
$array = array_merge($array, $files);
}
}
if (count($array) > $limitCount) {
echo "批量下载单次最大文件数不能超过:" . $limitCount;
exit;
}
$size = $this->calculateSize($array);
if ($size > $limitSize * 1024 * 1024) {
echo "批量下载单次最大文件大小不能超过:" . $limitSize . "M";
exit;
}
$path = CUtils::removeUserFromPath($array[0]["file_path"]);
$removeParent = pathinfo($path, PATHINFO_DIRNAME);
if (strlen($removeParent) == 1) {
$removeParent = "";
}
//zip压缩
$zip = new ZipArchive();
$zipFile = $storePath . ".zip";
//删除上次存在的压缩文件
$fileSystem->delete($zipFile);
try {
$zipFile = mb_convert_encoding($zipFile, "gb2312", "UTF-8");
} catch (Exception $e) {
$zipFile = $zipFile;
}
if ($zip->open($zipFile, ZIPARCHIVE::OVERWRITE) === TRUE) {
//执行拷贝操作
foreach ($array as $file) {
$fileType = $file["file_type"];
$filePath = $file["file_path"];
//获取存储文件的绝对路径
if (!empty($removeParent)) {
$relativePath = CUtils::str_replace_once($removeParent, "", CUtils::removeUserFromPath($filePath));
} else {
$relativePath = CUtils::removeUserFromPath($filePath);
}
//打包加上nick
$relativePath = $packageName . $relativePath;
//转换文件编码为中文编码
try {
$store = mb_convert_encoding($relativePath, "gb2312", "UTF-8");
} catch (Exception $e) {
$store = $relativePath;
}
$hasRead = true;
if ($userId == $file["user_id"] && $fileType == MConst::OBJECT_TYPE_FILE) {
//属于自己的文件
$this->addToFile($zip, $file, $store, $fileSystem);
} elseif ($userId != $file["user_id"] && $fileType == MConst::OBJECT_TYPE_FILE) {
//不属于自己的文件
if ($hasRead) {
$this->addToFile($zip, $file, $store, $fileSystem);
}
} elseif ($userId == $file["user_id"] && $fileType == MConst::OBJECT_TYPE_DIRECTORY) {
//属于自己的文件夹
$this->addToFolder($zip, $store);
} else {
//不属于自己的文件夹
if ($hasRead) {
$this->addToFolder($zip, $store);
}
}
}
$zip->close();
//关闭
}
if (!file_exists($zipFile)) {
echo Yii::t('i18n', 'no_privilege');
Yii::app()->end();
}
//进行下载
CUtils::output($zipFile, "application/octet-stream", $packageName . ".zip");
}
示例2: updatedAllFilePath
/**
*
* 修改用户权限的路径
*
* @since 1.0.7
*/
public function updatedAllFilePath($file_path, $new_file_path)
{
$privileges = UserPrivilege::model()->findAll('file_path like :file_path', array(':file_path' => $file_path . '%'));
if (empty($privileges)) {
return false;
}
//替换所有的path
foreach ($privileges as $privilege) {
$privilege->file_path = CUtils::str_replace_once($file_path, $new_file_path, $privilege->file_path);
$privilege->save();
}
return true;
}