php函数base64,base64_encode和序列化php函数参数

在浏览

Moodle’s源代码时,我偶然发现了这个:

库/最近/ lib.php

public function get_listing($encodedpath = '', $page = '') {

global $OUTPUT;

$ret = array();

$ret['dynload'] = true;

$ret['nosearch'] = true;

$ret['nologin'] = true;

$list = array();

$files = $this->get_recent_files(0, $this->number);

try {

foreach ($files as $file) {

$params = base64_encode(serialize($file));

// Check that file exists and accessible

$filesize = $this->get_file_size($params);

if ($file['filename'] == 'image.png') {

var_dump($filesize);

}

if (!empty($filesize)) {

$node = array(

'title' => $file['filename'],

'size' => $filesize,

'date' => '',

'source'=> $params,

'thumbnail' => $OUTPUT->pix_url(file_extension_icon($file['filename'], 32))->out(false),

);

$list[] = $node;

}

}

} catch (Exception $e) {

throw new repository_exception('emptyfilelist', 'repository_recent');

}

$ret['list'] = array_filter($list, array($this, 'filter'));

return $ret;

}

库/ lib.php

public function get_file_size($source) {

$browser = get_file_browser();

$params = unserialize(base64_decode($source));

$contextid = clean_param($params['contextid'], PARAM_INT);

$fileitemid = clean_param($params['itemid'], PARAM_INT);

$filename = clean_param($params['filename'], PARAM_FILE);

$filepath = clean_param($params['filepath'], PARAM_PATH);

$filearea = clean_param($params['filearea'], PARAM_AREA);

$component = clean_param($params['component'], PARAM_COMPONENT);

$context = get_context_instance_by_id($contextid);

$file_info = $browser->get_file_info($context, $component, $filearea, $fileitemid, $filepath, $filename);

if (!empty($file_info)) {

$filesize = $file_info->get_filesize();

} else {

$filesize = null;

}

return $filesize;

}

我的问题是,当函数内部立即撤消时,base64编码和序列化的目的是什么?是否有正当理由这样做或者这只是过度设计?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值