本文整理汇总了PHP中parse_attr函数的典型用法代码示例。如果您正苦于以下问题:PHP parse_attr函数的具体用法?PHP parse_attr怎么用?PHP parse_attr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了parse_attr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: do_embed_lazy
function do_embed_lazy($html = '')
{
if (is_exit() || empty($html)) {
return $html;
}
$patern_ifr = '/<\\s*iframe\\s+(?<attr>[^>]*)/i';
if (preg_match($patern_ifr, $html, $ifr)) {
$attr_arr = parse_attr($ifr['attr']);
if (!$attr_arr || empty($attr_arr['src']) || LAZY_PLACEHOLDER === $attr_arr['src'] || !empty($attr_arr['data-src'])) {
return $html;
}
if (array_key_exists('class', $attr_arr)) {
$attr_arr['class'] = do_class($attr_arr['class']);
} else {
$attr_arr['class'] = LAZY_CLASS;
}
$attr_arr['data-src'] = $attr_arr['src'];
$attr_arr['src'] = LAZY_PLACEHOLDER;
$html = str_replace($ifr['attr'], trim(attributes_to_string($attr_arr)), $html);
get_assets();
}
return $html;
}
示例2: lists
/**
* 获取配置列表
* @return array 配置数组
*/
public function lists()
{
$map['status'] = array('gt', 0);
$list = $this->where($map)->field('name,value,type')->select();
foreach ($list as $key => $val) {
if ($val['type'] === 'array') {
//数组类型需要解析配置的value
$config[$val['name']] = parse_attr($val['value']);
} else {
$config[$val['name']] = $val['value'];
}
}
return $config;
}
示例3: group
/**
* 获取某个分组的配置参数
*/
public function group($tab = 1)
{
//根据分组获取配置
$map['status'] = array('egt', 0);
//禁用和正常状态
$map['group'] = array('eq', $tab);
$data_list = D('SystemConfig')->where($map)->order('sort asc,id asc')->select();
//构造表单名、解析options
foreach ($data_list as &$data) {
$data['name'] = 'config[' . $data['name'] . ']';
$data['options'] = parse_attr($data['options']);
}
//使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->title('系统设置')->setTablist(C('CONFIG_GROUP_LIST'))->setCurrentTab($tab)->setUrl(U('groupSave'))->setExtraItems($data_list)->display();
}
示例4: lists
/**
* 获取配置列表与ThinkPHP配置合并
* @return array 配置数组
* @author jry <598821125@qq.com>
*/
public function lists()
{
$map['status'] = array('eq', 1);
$list = $this->where($map)->field('name,value,type')->select();
foreach ($list as $key => $val) {
switch ($val['type']) {
case 'array':
$config[$val['name']] = parse_attr($val['value']);
break;
case 'checkbox':
$config[$val['name']] = explode(',', $val['value']);
break;
default:
$config[$val['name']] = $val['value'];
break;
}
}
return $config;
}
示例5: index
/**
* 用户列表
* @author jry <598821125@qq.com>
*/
public function index($user_type = 1)
{
// 获取用户类型的搜索字段
$user_type_info = D('User/Type')->find($user_type);
$con = array();
$con['user_type'] = $user_type;
$con['id'] = array('in', $user_type_info['list_field']);
$query_attribute = D('User/Attribute')->where($con)->select();
foreach ($query_attribute as &$value) {
$value['options'] = parse_attr($value['options']);
// 构造搜索条件
if ($_GET[$value['name']] !== 'all' && $_GET[$value['name']]) {
switch ($value['type']) {
case 'radio':
$tmp = $_GET[$value['name']];
$map[$value['name']] = $tmp;
break;
case 'select':
$tmp = $_GET[$value['name']];
$map[$value['name']] = $tmp;
break;
case 'checkbox':
$tmp = $_GET[$value['name']];
$map[$value['name']] = array('like', array($tmp, $tmp . ',%', '%,' . $tmp . ',%', '%,' . $tmp), 'OR');
break;
}
}
}
// 获取用户基本信息
$map['status'] = 1;
$map['user_type'] = $user_type;
$p = !empty($_GET["p"]) ? $_GET['p'] : 1;
$user_object = D('Admin/User');
$base_table = C('DB_PREFIX') . 'admin_user';
$extend_table = C('DB_PREFIX') . 'user_' . strtolower($user_type_info['name']);
$user_list = $user_object->page($p, 16)->where($map)->order('create_time desc')->join($extend_table . ' ON ' . $base_table . '.id = ' . $extend_table . '.uid', 'LEFT')->select();
$page = new Page($user_object->where($map)->join($extend_table . ' ON ' . $base_table . '.id = ' . $extend_table . '.uid', 'LEFT')->count(), 16);
$this->assign('page', $page->show());
$this->assign('query_attribute', $query_attribute);
$this->assign('meta_title', '用户');
$this->assign('user_list', $user_list);
$this->display();
}
示例6: run
/**
* 行为扩展的执行入口必须是run
* @author jry <598821125@qq.com>
*/
public function run(&$content)
{
// 安装模式下直接返回
if (defined('BIND_MODULE') && BIND_MODULE === 'Install') {
return;
}
// 允许访问模块列表加上安装的功能模块
$module_name_list = D('Admin/Module')->where(array('status' => 1))->getField('name', true);
$module_allow_list = array_merge(C('MODULE_ALLOW_LIST'), $module_name_list);
C('MODULE_ALLOW_LIST', $module_allow_list);
// URL_MODEL必须在app_init阶段就从数据库读取出来应用
// 不然系统就会读取config.php中的配置导致后台的配置失效
$config['URL_MODEL'] = D('Admin/Config')->getFieldByName('URL_MODEL', 'value');
$config['APP_SUB_DOMAIN_DEPLOY'] = D('Admin/Config')->getFieldByName('APP_SUB_DOMAIN_DEPLOY', 'value');
if ($config['APP_SUB_DOMAIN_DEPLOY']) {
$config['APP_SUB_DOMAIN_RULES'] = parse_attr(D('Admin/Config')->getFieldByName('APP_SUB_DOMAIN_RULES', 'value'));
}
C($config);
}
示例7: group_list
/**
* 栏目分组
* @author jry <598821125@qq.com>
*/
public function group_list()
{
return parse_attr(C('article_config.group_list'));
}
示例8: edit
/**
* 编辑文章
* @author jry <598821125@qq.com>
*/
public function edit($id)
{
$this->is_login();
//获取文档信息
$document_info = D('Document')->detail($id);
//获取当前分类
$category_info = D('Category')->find($document_info['cid']);
if (!$category_info['post_auth']) {
$this->error('该分类禁止投稿');
}
$doc_type = D('DocumentType')->find($category_info['doc_type']);
$field_sort = json_decode($doc_type['field_sort'], true);
$field_group = parse_attr($doc_type['field_group']);
//获取文档字段
$map = array();
$map['status'] = array('eq', '1');
$map['show'] = array('eq', '1');
$map['doc_type'] = array('in', '0,' . $category_info['doc_type']);
$attribute_list = D('DocumentAttribute')->where($map)->select();
//解析字段options
$new_attribute_list = array();
foreach ($attribute_list as $attr) {
if ($attr['name'] == 'cid') {
$con = array();
$con['group'] = $category_info['group'];
$con['doc_type'] = $category_info['doc_type'];
$attr['options'] = select_list_as_tree('Category', $con);
} else {
$attr['options'] = parse_attr($attr['options']);
}
$new_attribute_list[$attr['id']] = $attr;
$new_attribute_list[$attr['id']]['value'] = $document_info[$attr['name']];
}
//表单字段排序及分组
if ($field_sort) {
$new_attribute_list_sort = array();
foreach ($field_sort as $k1 => &$v1) {
$new_attribute_list_sort[0]['type'] = 'group';
$new_attribute_list_sort[0]['options']['group' . $k1]['title'] = $field_group[$k1];
foreach ($v1 as $k2 => $v2) {
$new_attribute_list_sort[0]['options']['group' . $k1]['options'][] = $new_attribute_list[$v2];
}
}
$new_attribute_list = $new_attribute_list_sort[0]['options']['group1']['options'];
}
//使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('编辑文章')->setPostUrl(U('update'))->addFormItem('id', 'hidden', 'ID', 'ID')->setExtraItems($new_attribute_list)->setFormData($document_info)->setTemplate('_Builder/formbuilder_user')->display();
}
示例9: edit
/**
* 编辑模型
* @author jry <598821125@qq.com>
*/
public function edit($id)
{
if (IS_POST) {
$_POST['list_field'] = implode(',', $_POST['list_field']);
$document_type_object = D('DocumentType');
$data = $document_type_object->create();
if ($data) {
if ($document_type_object->save() !== false) {
$this->success('更新成功', U('index'));
} else {
$this->error('更新失败');
}
} else {
$this->error($document_type_object->getError());
}
} else {
$document_type_info = D('DocumentType')->find($id);
$document_type_field_group = parse_attr($document_type_info['field_group']);
$document_type_field_sort = json_decode($document_type_info['field_sort'], true);
//获取文档字段
$map['status'] = array('eq', '1');
$map['show'] = array('eq', '1');
$map['doc_type'] = array('in', '0,' . $id);
$attribute_list = D('DocumentAttribute')->where($map)->select();
//获取用于列表显示字段表单复选框的内容
$map['doc_type'] = array('eq', $id);
$attribute_list_checkbox = select_list_as_tree('DocumentAttribute', $map);
//解析字段
$new_attribute_list = array();
foreach ($attribute_list as $attr) {
$new_attribute_list[$attr['id']] = $attr['title'];
}
//构造拖动排序options
foreach ($document_type_field_sort as $key => $val) {
$field[$key]['title'] = $document_type_field_group[$key];
$temp = array();
foreach ($val as $val2) {
if ($new_attribute_list[$val2]) {
$temp[$val2] = $new_attribute_list[$val2];
}
unset($new_attribute_list[$val2]);
}
$field[$key]['field'] = $temp;
}
//计算未排序字段分组的key
$unsort_key = array_pop(array_keys($field)) + 1;
//未排序字段
if ($new_attribute_list) {
$field[$unsort_key]['title'] = "未排序";
$field[$unsort_key]['field'] = $new_attribute_list;
}
//使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('编辑模型')->setPostUrl(U('edit'))->addFormItem('id', 'hidden', 'ID', 'ID')->addFormItem('name', 'text', '模型名称', '模型名称')->addFormItem('title', 'text', '模型标题', '模型标题')->addFormItem('main_field', 'radio', '主要字段', '该模型的主要字段,如:文章的标题,商品的名称,用于前台列表及搜索列表显示', $attribute_list_checkbox)->addFormItem('list_field', 'checkbox', '列表显示字段', '后台文档列表需要显示字段及搜索字段,如:文章的标题,商品的名称', $attribute_list_checkbox)->addFormItem('field_group', 'textarea', '字段分组', '字段分组')->addFormItem('field_sort', 'board', '字段排序', '字段排序', $field)->addFormItem('icon', 'icon', '图标', '模型图标')->addFormItem('sort', 'num', '排序', '用于显示的顺序')->setFormData(D('DocumentType')->find($id))->display();
}
}
示例10: edit
/**
* 编辑文章
* @author jry <598821125@qq.com>
*/
public function edit($id)
{
//获取文档信息
$document_info = D('Document')->detail($id);
//分类权限检测
if (!D('UserGroup')->checkCategoryAuth($document_info['cid'])) {
$this->error('权限不足!');
}
if (IS_POST) {
//更新文档
$document_object = D('Document');
$result = $document_object->update();
if (!$result) {
$this->error($document_object->getError());
} else {
$this->success('更新成功', U('Document/index', array('cid' => I('post.cid'))));
}
} else {
//获取当前分类
$category_info = D('Category')->find($document_info['cid']);
$doc_type = D('DocumentType')->find($category_info['doc_type']);
$field_sort = json_decode($doc_type['field_sort'], true);
$field_group = parse_attr($doc_type['field_group']);
//获取文档字段
$map['status'] = array('eq', '1');
$map['show'] = array('eq', '1');
$map['doc_type'] = array('in', '0,' . $category_info['doc_type']);
$attribute_list = D('DocumentAttribute')->where($map)->select();
//解析字段options
$new_attribute_list = array();
foreach ($attribute_list as $attr) {
if ($attr['name'] == 'cid') {
$con['group'] = $category_info['group'];
$con['doc_type'] = $category_info['doc_type'];
$con['status'] = array('egt', 0);
$attr['options'] = select_list_as_tree('Category', $con);
} else {
$attr['options'] = parse_attr($attr['options']);
}
$new_attribute_list[$attr['id']] = $attr;
$new_attribute_list[$attr['id']]['value'] = $document_info[$attr['name']];
}
//表单字段排序及分组
if ($field_sort) {
$new_attribute_list_sort = array();
foreach ($field_sort as $k1 => &$v1) {
$new_attribute_list_sort[0]['type'] = 'group';
$new_attribute_list_sort[0]['options']['group' . $k1]['title'] = $field_group[$k1];
foreach ($v1 as $k2 => $v2) {
$new_attribute_list_sort[0]['options']['group' . $k1]['options'][] = $new_attribute_list[$v2];
}
}
$new_attribute_list = $new_attribute_list_sort;
}
//使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('编辑文章')->setPostUrl(U('edit'))->addFormItem('id', 'hidden', 'ID', 'ID')->setExtraItems($new_attribute_list)->setFormData($document_info)->display();
}
}
示例11: group
/**
* 获取某个分组的配置参数
* @author jry <598821125@qq.com>
*/
public function group($group = 1)
{
//根据分组获取配置
$map['status'] = array('egt', '0');
// 禁用和正常状态
$map['group'] = array('eq', $group);
$data_list = D('Config')->where($map)->order('sort asc,id asc')->select();
// 设置Tab导航数据列表
$config_group_list = C('CONFIG_GROUP_LIST');
// 获取配置分组
foreach ($config_group_list as $key => $val) {
$tab_list[$key]['title'] = $val;
$tab_list[$key]['href'] = U('group', array('group' => $key));
}
// 构造表单名、解析options
foreach ($data_list as &$data) {
$data['name'] = 'config[' . $data['name'] . ']';
$data['options'] = parse_attr($data['options']);
}
// 使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('系统设置')->SetTabNav($tab_list, $group)->setPostUrl(U('groupSave'))->setExtraItems($data_list)->display();
}
示例12: detail
/**
* 获取文章详情
* @author jry <598821125@qq.com>
*/
public function detail($id, $map = null)
{
//获取基础表信息
$con = array();
$con['id'] = $id;
$con['status'] = array('egt', 1);
// 正常、隐藏两种状态是可以访问的
if ($map) {
$con = array_merge($con, $map);
}
$info = $this->where($con)->find();
if (!is_array($info)) {
$this->error = '文章被禁用或已删除!';
return false;
}
// 阅读量加1
$result = $this->where(array('id' => $id))->SetInc('view');
// 获取作者信息
$info['user'] = get_user_info($info['uid']);
// 获取发帖数量
$info['user']['post_count'] = $this->where(array('uid' => $info['uid']))->count();
// 获取文档模型相关信息
$doc_type_info = D($this->moduleName . '/Type')->find($info['category_info']['doc_type']);
if ($doc_type_info['system']) {
$this->error = '文档类型错误!';
return false;
}
$info['doc_type_info'] = $doc_type_info;
// 根据文章模型获取扩展表的息
$extend_table_object = D($this->moduleName . '/' . $this->moduleName . ucfirst($doc_type_info['name']));
$extend_data = $extend_table_object->find($id);
// 基础信息与扩展信息合并
if (is_array($extend_data)) {
$info = array_merge($info, $extend_data);
}
// 获取筛选字段
$con = array();
$con['id'] = array('in', $doc_type_info['filter_field']);
$attribute_object = D($this->moduleName . '/Attribute');
$filter_field_list = $attribute_object->where($con)->select();
$new_filter_field_list = array();
foreach ($filter_field_list as $key => $val) {
$val['options'] = parse_attr($val['options']);
$new_filter_field_list[$val['name']] = $val;
}
$info['filter_field_list'] = $new_filter_field_list;
// 给文档主要字段赋值,如:文章标题、商品名称
$type_main_field = $attribute_object->getFieldById($doc_type_info['main_field'], 'name');
$info['main_field'] = $info[$type_main_field];
// 下载文件地址加密
if ($info['file']) {
$file_list = explode(',', $info['file']);
foreach ($file_list as &$file) {
$file = D('Home/Upload')->find($file);
$uid = is_login();
if ($uid) {
$file['token'] = \Think\Crypt::encrypt($file['md5'], user_md5($uid), 3600);
} else {
$file['token'] = 'please login';
}
}
$info['file_list'] = $file_list;
}
// 获取上一篇和下一篇文章信息
$info['previous'] = $this->getPrevious($info);
$info['next'] = $this->getNext($info);
return $info;
}
示例13: profile
/**
* 用户修改信息
* @author jry <598821125@qq.com>
*/
public function profile()
{
if (IS_POST) {
// 强制设置用户ID
$uid = $this->is_login();
$_POST['uid'] = $uid;
$_POST = format_data();
// 获取用户信息
$user_object = D('User/User');
$user_info = $user_object->find($uid);
// 保存昵称
if (I('post.nickname')) {
$result = $user_object->where(array('id' => $uid))->setField('nickname', I('post.nickname'));
if ($result === false) {
$this->error('昵称修改失败' . $user_object->getError());
}
} else {
$this->error('请填写昵称');
}
// 保存扩展信息
$type = $user_info['user_type'];
$map['user_type'] = array('eq', $type);
$count = D('User/Attribute')->where($map)->count();
if ($count) {
$user_type_name = D('User/Type')->where(array('id' => $user_info['user_type']))->getField('name');
$user_extend_object = D('User' . ucfirst($user_type_name));
$extend_data = $user_extend_object->create();
if (!$extend_data) {
$this->error($user_extend_object->getError());
}
$extend_info = $user_extend_object->find($uid);
if ($extend_info) {
$result = $user_extend_object->save($extend_data);
} else {
$result = $user_extend_object->add($extend_data);
}
if ($result === false) {
$this->error('扩展信息修改失败' . $user_extend_object->getError());
} else {
$this->success('信息修改成功');
}
}
} else {
// 获取当前用户
$user_object = D('User/User');
$user_info = $user_object->detail($this->is_login());
$type = $user_info['user_type'];
$user_type_info = D('User/Type')->find($type);
// 获取扩展字段
$map['user_type'] = array('eq', $type);
$attribute_list[$type] = D('User/Attribute')->where($map)->order('id asc')->select();
// 解析字段options
$new_attribute_list_sort['user']['type'] = 'group';
if ($attribute_list[$type]) {
// 增加昵称表单
$nick['name'] = 'nickname';
$nick['title'] = '昵称';
$nick['type'] = 'text';
$nick['value'] = $user_info['nickname'];
$new_attribute_list[1][0] = $nick;
foreach ($attribute_list[$type] as $attr) {
$attr['options'] = parse_attr($attr['options']);
$new_attribute_list[$type][$attr['id']] = $attr;
$new_attribute_list[$type][$attr['id']]['value'] = $user_info[$attr['name']];
}
$new_attribute_list_sort['user']['options']['group_extend']['title'] = '完善' . $user_type_info['title'] . '信息';
$new_attribute_list_sort['user']['options']['group_extend']['options'] = $new_attribute_list[$type];
}
// 使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('修改信息')->setPostUrl(U(''))->setExtraItems($new_attribute_list_sort)->setTemplate(C('USER_CENTER_FORM'))->display();
}
}
示例14: edit
/**
* 编辑类型
* @author jry <598821125@qq.com>
*/
public function edit($id)
{
if (IS_POST) {
$document_type_object = D('DocumentType');
$data = $document_type_object->create();
if ($data) {
if ($document_type_object->save() !== false) {
$this->success('更新成功', U('index'));
} else {
$this->error('更新失败');
}
} else {
$this->error($document_type_object->getError());
}
} else {
$document_type_info = D('DocumentType')->find($id);
$document_type_field_group = parse_attr($document_type_info['field_group']);
$document_type_field_sort = json_decode($document_type_info['field_sort'], true);
//获取文档字段
$map['status'] = array('eq', '1');
$map['show'] = array('eq', '1');
$map['doc_type'] = array('in', '0,' . $id);
$attribute_list = D('DocumentAttribute')->where($map)->select();
//解析字段
$new_attribute_list = array();
foreach ($attribute_list as $attr) {
$new_attribute_list[$attr['id']] = $attr['title'];
}
//构造拖动排序options
foreach ($document_type_field_sort as $key => $val) {
$field[$key]['title'] = $document_type_field_group[$key];
$temp = array();
foreach ($val as $val2) {
if ($new_attribute_list[$val2]) {
$temp[$val2] = $new_attribute_list[$val2];
}
unset($new_attribute_list[$val2]);
}
$field[$key]['field'] = $temp;
}
//计算未排序字段分组的key
$unsort_key = array_pop(array_keys($field)) + 1;
//未排序字段
if ($new_attribute_list) {
$field[$unsort_key]['title'] = "未排序";
$field[$unsort_key]['field'] = $new_attribute_list;
}
//使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->title('编辑类型')->setUrl(U('edit'))->addItem('id', 'hidden', 'ID', 'ID')->addItem('name', 'text', '类型名称', '类型名称')->addItem('title', 'text', '类型标题', '类型标题')->addItem('field_group', 'textarea', '字段分组', '字段分组')->addItem('icon', 'icon', '图标', '类型图标')->addItem('sort', 'num', '排序', '用于显示的顺序')->addItem('field_sort', 'board', '字段排序', '字段排序', $field)->setFormData(D('DocumentType')->find($id))->display();
}
}
示例15: input
function input($attributes)
{
$output = '';
if (isset($attributes) && !empty($attributes)) {
$attributes = parse_attr($attributes);
}
$output .= '<input ' . $attributes . '/>';
return $output;
}