提供简单的emlog模版修改教程,分享一些有趣的程序源代码,记录每一次emlog修改的经历!
首页 关于本站 网站模板
代码教程
  • Emlog教程
  • 米拓教程
  • SEO优化教程
  • Ecshop教程
  • zblog教程
  • Excel技巧
  • 电脑软件教程
  • 互联网
  • 免费资源
  • 网络新闻
  • 留言咨询
  • 在线问答
  • 申请友链
  • 网址导航
  • 联系舍力
    舍力
    登录
    侧边栏壁纸
    博主头像
    舍力

    静以修身。

    • 累计撰写 1140 篇文章
    • 累计收到 3547 条评论
    • 首页
    • 栏目
      • 首页
      • 关于本站
      • 网站模板
      • 代码教程
        • Emlog教程
        • 米拓教程
        • SEO优化教程
        • Ecshop教程
        • zblog教程
        • Excel技巧
        • 电脑软件教程
      • 互联网
        • 免费资源
        • 网络新闻
      • 留言咨询
        • 在线问答
        • 申请友链
        • 网址导航
      • 联系舍力
    代码教程
    • zblogphp 调用指定分类名称及下面文章列表 2019-1-4
      zblogphp 调用指定分类名称及下面文章列表 做zblog php版本的CMS企业模板,通过GetList函数调用指定分类文章时,发现调用结果只有指定ID分类的文章,该ID分类下的子分类文章没有显示在调用结果中,在zblog官方论坛咨询,管理员给出回复,是GetList函数参数没有设置完整(所以要仔细研究函数)。 下面代码一般放入include.php中 function slsort($Rows,$CategoryID,$hassubcate){global $zbp;$ids = strpos($CategoryID,',') !== false ? explode(',',$CategoryID) : array($CategoryID);$wherearray=array();foreach($ids as $cateid){if(!$hassubcate){$wherearray=array('log_CateID',$cateid);}else{$wherearray = array('log_CateID',$cateid);foreach($zbp->categorys->SubCategorys as $subcate){$wherearray = array('log_CateID', $subcate->ID);}}}$where=array(array('array',$wherearray),array('=','log_Status','0'),);$order = array('log_PostTime'=>'DESC');$articles=$zbp->GetArticleList(array('*'),$where,$order,array($Rows),'');return $articles;} 调用代码: {php}$flids = explode(',','1,2');{/php} {foreach $flids as $flid} {if isset($categorys)} <a href="{$categorys.Url}" title="{$categorys.Name}">{$categorys.Name}</a> {/if} {foreach $array=slsort(8,$flid,true) as $related} <a href="{$related.Url}" title="{$related.Title}">{strip_tags($related.Title)}</a></p> {/foreach} {/foreach} 其中的1,2为分类id,可使用后面主题设置参数$zbp->Config('qyblue')->cpid;8为显示的数量
      • 2019年1月4日
      • 8044 阅读
      • 1 评论
      zblog教程
    • zblog php获取文章的第一张图片,没有调用默认图片 2019-1-4
      zblog php获取文章的第一张图片,没有调用默认图片 php版的zblog提供了获取文章首张图片的函数代码,直接把函数代码添加到模板文件中,然后调用对应的变量输入图片url即可,默认用于最新文章列表,通过代码调整可用于分类文章列表,比如zblog php企业模板的首页产品展示列表。 下面代码一般放入include.php中 function slimgs($src){global $zbp;if(!$zbp->CheckPlugin('IMAGE')){$thumbs_src=$src;}else{$thumbs_src=IMAGE::getPicUrlBy($src,4);}return $thumbs_src;} function slimg($as,$pos){global $zbp;$temp=mt_rand(1,3);$pattern = "/<img.*?src=(\"|')?(?<src>.*?\.(gif|jpg|jpeg|png))(\"|')?.*?>/"; $content = $as->Content;if($pos->Metas->thumbnail){$temp=$pos->Metas->thumbnail;}else{if(preg_match($pattern,$content,$matchContent) && isset($matchContent)){$temp=$matchContent;}else{$temp=$zbp->host . "zb_users/theme/" .$zbp->theme. "/style/images/pic.png";}}$src = slimgs($temp);return $src;} 调用代码(在循环里面调用): {slimg($related,$related)}
      • 2019年1月4日
      • 7179 阅读
      • 1 评论
      zblog教程
    • zblogphp调用最新文章 最热文章 最多评论的方法 2019-1-2
      zblogphp调用最新文章 最热文章 最多评论的方法 http://www.txcstx.cn/post/734.html
      • 2019年1月2日
      • 6961 阅读
      • 0 评论
      zblog教程
    • zblog教程:关于栏目分类调用代码汇总介绍 2018-12-25
      zblog教程:关于栏目分类调用代码汇总介绍 Z-Blog PHP栏目分类一般用于分类页面的侧边位置,用来显示当前分类下的其他分类目录。 1、调用所有栏目分类(以下就可以实现,代码比较简单,直接把下面代码放入你需要放置的位置即可) {php} global $zbp; $array = $zbp->GetCategoryList('','',array('cate_Count'=>'DESC'),''); {/php} {foreach $array as $cate} <a href="{$cate->Url}" title="{$cate->Name}">{$cate->Name}</a> {/foreach} 2、调用当前栏目下的所有子分类代码: {php} $str=''; $where=array(array('=','cate_ParentID',$category->ID)); $array=$zbp->GetCategoryList(null,$where,array('cate_Order'=>'ASC'),null,null); foreach ($array as $cate){ $str.='<li><a href="'.$cate->Url.'">'.$cate->Name.'</a></li>'; } echo $str; {/php} 3、调用指定分类下的所有子分类(categorys的1表示分类id) {php} global $zbp; foreach($zbp->categorys->SubCategorys as $cate){ echo '<a href="'.$cate->Url.'" title="'.$cate->Name.'">'.$cate->Name.'</a></li>'; } {/php} 4、指定多个分类的二级分类 {php} $array = explode(',',$zbp->Config('qyblue')->cblflid); {/php} {foreach $array as $id} <div class="fl1"><a href="{$categorys.Url}" title="{$categorys.Name}">{$categorys.Name}</a></div> {foreach $zbp->categorys->SubCategorys as $cate} <div class="fl2"> <li><a href="{$cate->Url}" title="{$cate->Name}">{$cate->Name}</a></li> </div> {/foreach} {/foreach}
      • 2018年12月25日
      • 8486 阅读
      • 0 评论
      zblog教程
    • Emlog博客程序模板制作之title标题SEO优化篇 2018-12-6
      Emlog博客程序模板制作之title标题SEO优化篇 众所周知,在SEO中标题的优化占着举足轻重的地位,无论是从用户体验的角度出发,还是从搜索引擎的排名效果出发,title标题都是页面优化最最重要的因素。根据《百度站长平台-搜索学院:百度搜索网页标题规范》可以针对Emlog博客模板进行标题SEO优化。 本段代码一般放置在head.php中 <title><?php if($sortName){if(_g('seo.'.$sortid)){echo _g('seo.'.$sortid);}else{echo $sortName.' - '.$blogname;}//在模板设置中填写,为空则调用分类名称+站点标题 }elseif($logid){echo $log_title.' - '.$blogname;//显示为文章标题+站点标题 }elseif($keyword){echo '搜索关键词为'.$keyword.'信息 - '.$blogname;//搜索关键词 }elseif($record){echo '发布于【'.substr($params,0,4).'年'.substr($params,4,2).'月'.'】的所有信息 - '.$blogname;//日期归档 }elseif($tag){echo urldecode($params).' - '.$blogname;//标签 }elseif($author){echo $user_cache.' - '.$blogname;//作者 }else{echo $site_title;//其他页面 } if($page>=2){echo ' - 第'.$page.'页';}$p=$_GET;if($p>0){echo ' - 第'.($p+1).'页';}?></title> options.php中放置如下代码: 'seo' => array( 'type' => 'text', 'name' => '分类SEO标题', 'values' => array('',), 'depend' => 'sort', 'unsorted' => false, 'description' => '选择好分类,然后填写', ), 当然,上面的文字可以根据网站类型特点自行修改 当然,keywords,description也可以根据上面代码进行修改优化,这里就不具体介绍了
      • 2018年12月6日
      • 9815 阅读
      • 3 评论
      Emlog教程
    • 中山SEO_中山网站优化公司黄页_中山SEO推广公司大全 2018-12-4
      中山SEO_中山网站优化公司黄页_中山SEO推广公司大全 中山SEO
      • 2018年12月4日
      • 13134 阅读
      • 0 评论
      SEO优化教程
    • 佛山SEO_佛山网站优化公司黄页_佛山SEO推广公司大全 2018-12-1
      佛山SEO_佛山网站优化公司黄页_佛山SEO推广公司大全 佛山SEO
      • 2018年12月1日
      • 13948 阅读
      • 0 评论
      SEO优化教程
    • 广州SEO_广州网站优化公司大全 2018-11-30
      广州SEO_广州网站优化公司大全 广州SEO
      • 2018年11月30日
      • 12986 阅读
      • 0 评论
      SEO优化教程
    • 百度站长平台-搜索学院:百度搜索网页标题规范 2018-11-16
      百度站长平台-搜索学院:百度搜索网页标题规范 对搜索用户来说,标题是一个网页最直观的认知渠道和展现方式,也是吸引用户点击搜索结果进入落地页的关键因素。 为了保障搜索用户对所需资源的有效获取,保证搜索结果的公平性,现百度搜索对外发布《百度搜索网页标题规范》,希望在满足用户需求的同时,为站长带来更多流量,实现共赢。 1、标题的定义 对网页内容的准确且简明扼要的描述。 具体举例:   图1-1 符合规范的标题示例 网页源代码中的体现:   图1-2 符合规范的标题源码示例 2、标题的作用 标题对于搜索用户来说,能够帮助用户快速洞察网页的内容以及该网页与搜索需求的相关性。它通常是用来决定用户点击哪个结果的主要信息。 所以,使用高质量的网页标题对网站来说至关重要。 3、 百度搜索网页标题规范 3.1标题的原则 • 网站应确保该站点下的每个页面都有指定的标题(如上文中“图1-2符合规范的标题源码示例”所示),且同一站点的不同网页应分别使用不同的标题; • 页面标题应准确概括页面内容,避免使用模糊和不相关的描述; • 页面标题应简明扼要,避免使用冗长的标题,避免关键词堆砌; • 页面标题的符号使用正确,建议参考百度建议的标题符号用法(详细内容请参见本文“4.3.2标题的符号”部分) 3.2 不允许出现的标题类型 标题存在以下恶劣问题时,会对这类结果做相应的搜索结果展现限制。 3.2.1标题内容虚假 指标题和网页内容不相符,欺骗诱导用户点击的情况。 类型1:虚假官网 指非官方网站,但标题表述为官网的情况。 线上截图: 图3-1 非官方网站但标题为官网的负面案例 类型2:无法满足用户需求 如:标题中标明可下载或在线阅读小说txt,但是页面中不提供下载服务或诱导用户下载APP;或在标题中说明有百度云下载、支持在线观看,但是页面既不能下载,又不能在线观看。 负面案例:   图3-2 标题标明可下载小说,但页面中诱导下载APP的负面案例 类型3:标题表述部分虚假 如:某网页标题中标明有江苏一本大学排名,但页面只有大学名单,而没有排名相关的内容。 3.2.2标题重复、堆砌 指网站通过网页标题过度重复或堆砌等手段,获取不正当流量的情况。 类型1:标题关键词大量重复 类型2:标题大量堆砌语义相近的关键词标签 负面案例:   图3-3 标题堆砌关键词的负面案例 3.3 优质页面标题建议 优质的网页标题,不仅能明确表达网页的主旨目的,更能给搜索用户有效的引导,吸引目标用户点击。对符合优质规范的标题,百度将会给予更多的展现优待。 3.3.1 标题的构成 百度页面标题可以概括为“核心词+修饰词”的格式,修饰词建议不多于3个。 具体说明如下: 页面类型 页面类型说明 建议标题格式 举例 首页 首页是整个网站的入口 站点名/品牌名-首页/官网/slogan 注:此类页面的核心词为品牌词/网站名称,修饰词包括官网、官方网站、首页、主页、Home、网站的slogan、站点父品牌词等。 优酷首页 淘宝网-淘!我喜欢 京东-正品低价、品质保障、配送及时、轻松购物! 列表 站点内频道/列表类页面 列表/频道名-上级频道(可省) -站点名 注:此类页面的核心词为列表/频道方向内容,修饰词可以是站点名和上级频道内容,站点名为修饰词时必须放在最末尾 男士频道-唯品会 优酷财经-优酷 主题聚合页 主体聚合页是围绕某一主题各方面属性聚合而成的内容集合。 “主题-属性1-属性2-站点名” 注:此类页面的核心词是围绕的主题,修饰词可以是主题的属性、上级频道内容、站点名,站点名为修饰词时必须放在最末尾 成都旅游攻略-玩法路线-自由行攻略-携程旅行 内容页 内容页是指具体的内容页,比如文章详情页、商品详情页、具体视频的播放页等 标题格式:“内容标题-列表/频道名(可省)-站点名” 注:1、此类页面的核心词是内容的主体说明,比如文章的标题、视频的名称、商品/店铺的名称等,修饰词可以是上级频道内容、站点名,站点名为修饰词时必须放在最末尾 2、内容标题建议一句话表明,不重复表述,重复不超过3次 红烧肉的做法-菜谱-香哈网 18号台风“泰利”生成,或成今年“风王”! -中国新闻网 3.3.2标题的符号 问题类型 建议处理方法 间隔符(或连续间隔符)如---,_,|,—— 统一改成- 括号类:﹛﹜『』〖〗[]【】(书名号,小括号除外)等括号内字数少于等于4个字 改为「」 括号类:﹛﹜『』〖〗[]【】(书名号,小括号除外)等括号内字数大于4个字 删除 双标点:《》、“”等没有成对出现 删除 出现emoji 删除 句中连续空格 保留一个空格 句中标点前后出现空格 删除空格,保留标点 标题末尾出现无意义符号:中英文句号,逗号,分号,破折号 删除 句中出现中文句号 改为空格 中文后紧跟着英文标点,英文后是中文标点 改为中文/英文标点 连续标点符号且最后一个是省略号 保留省略号 4、百度标题改写机制 为保证搜索用户的体验,百度搜索将会对部分易造成用户误导的页面标题进行相应的改写,包括但不限于以下几种情况: 对于标题堆砌等过度优化的站点首页,百度搜索会将过度优化的标题直接改写为站点名称或公司名称; 对于部分表意模糊的页面,百度搜索将会从页面中提取页面关键信息补充在标题中,保证用户能够及时获取有效信息。 针对标题堆砌的改写示例: 图4-1 针对标题堆砌问题的改写示例 原文地址:https://ziyuan.baidu.com/college/articleinfo?id=2728
      • 2018年11月16日
      • 17423 阅读
      • 2 评论
      SEO优化教程
    • 给Emlog6.0.0正式版之后台增加多个侧边栏教程 2018-10-9
      给Emlog6.0.0正式版之后台增加多个侧边栏教程 emlog6.0.0的正式版本自发布以来,相对5.3.1版本少了很多功能,本教程就是舍力讲述后台侧边栏多个调用的代码。模板的使用教程请参考《Emlog模板调用多个侧边栏教程》,下面我具体教程: 打开后台模板文件(admin/views/widgets.php)找到代码 <form action="widgets.php?action=compages" method="post" class="form-inline"> 此处内容省略,对照源文件即可... </form> ,用下面代码代码替换即可(请先备份,以防万一) <form action="widgets.php?action=compages" method="post" class="form-inline"> <div class="panel-body"> <div class="panel-group adm_widget_box" id="sortable"> <?php if($tpl_sidenum > 1):?> <p><select id="wg_select"><?php for($i=1;$i<=$tpl_sidenum;$i++):if($i==$wgNum):?><option value="<?php echo $i;?>" selected>侧边栏<?php echo $i;?></option><?php else:?><option value="<?php echo $i;?>">侧边栏<?php echo $i;?></option><?php endif;endfor;?></select></p> <?php endif;?> <?php foreach ($widgets as $widget): $flg = strpos($widget, 'custom_wg_') === 0 ? true : false; //是否为自定义组件 $title = ($flg && isset($custom_widget)) ? $custom_widget : ''; //获取自定义组件标题 if($flg && empty($title)){ preg_match("/^custom_wg_(\d+)/", $widget, $matches); $title = '未命名组件('.$matches.')'; }?> <?php if($widgetTitle){?> <div class="panel panel-default active_widget" id="em_<?php echo $widget; ?>" style="cursor:move;"> <div class="panel-heading"> <input type="hidden" name="widgets" value="<?php echo $widget; ?>" /> <h4 class="panel-title"><?php if($flg){echo $title;}else{echo $widgetTitle;}?></h4> </div> </div> <?php }endforeach; ?> </div> </div> <input type="hidden" name="wgnum" id="wgnum" value="<?php echo $wgNum; ?>" /> <div style="margin:20px 40px;"><input type="submit" value="保存组件排序" class="btn btn-primary" /> <a href="javascript:em_confirm(0, 'reset_widget', '<?php echo LoginAuth::genToken(); ?>');" class="btn btn-danger" >恢复出厂设置</a></div> </form> 教程完毕!!!当模板支持多个侧边栏时,后台及可自行设置侧边栏,效果图如下: -=-增加随机文章的代码 <div id="random_log" class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href=".random_log" class="widget-title" aria-expanded="false">随机文章</a> <li class="widget-act-add"></li> <li class="widget-act-del"></li> </h4> </div> <div class="random_log panel-collapse collapse" aria-expanded="false"> <div class="panel-body"> <form action="widgets.php?action=setwg&wg=random_log" method="post" class="form-inline"> <li>标题</li> <li><input type="text" name="title" class="form-control" value="<?php echo $customWgTitle; ?>" /></li> <li>显示随机文章数</li> <li><input class="form-control" maxlength="5" size="10" value="<?php echo Option::get('index_randlognum'); ?>" name="index_randlognum" /> <input type="submit" name="" value="更改" class="btn btn-primary btn-sm" /></li> </form> </div> </div> </div>
      • 2018年10月9日
      • 16192 阅读
      • 12 评论
      Emlog教程
    • 让Emlog6.0.0版本支持模板设置插件的教程分享 2018-10-6
      让Emlog6.0.0版本支持模板设置插件的教程分享 emlog6.0.0正式版中使用官方模板设置时无法正常设置模板参数,下面的是教程详情: 第一步、首先找到路径/admin/views/template.php文件中代码 <?php if (!defined('EMLOG_ROOT')) {exit('error!');}?> 后面加入代码 <div id="containers"><?php doAction('adm_main_top'); ?> 第二步、找到代码替换模板设置插件(content/plugins/tpl_options/assets/main.js)的所有代码即可 $(function() { //初始化变量 var tplOptions = window.tplOptions; var body = $('body'); var iframe = $('<iframe name="upload-image" src="about:blank" style="display:none"/>').appendTo(body); var optionArea = $('<div/>').appendTo($('#containers')).addClass(attr('area')).slideUp(); var templateContent = $('.tpl:last, #container table'); var loadingDom = $('<div />').appendTo(body); var message = $('<div />').appendTo($('.tpl_msg:first')).css('position', 'fixed'); var timer, input, targetInput, target, templateInput, template; var trueInput = $('<input type="file" name="image">').css({ position: 'absolute', margin: 0, visibility: 'hidden' }).on('change', function() { loading(); target = input.data('target'); targetInput.val(target); templateInput.val(template); form.submit(); }).on('mouseleave', function() { trueInput.css('visibility', 'hidden'); input.css('visibility', 'visible'); }); var form = $('<form id="upload-form" target="upload-image" />').append( trueInput, targetInput = $('<input type="hidden" name="target">'), templateInput = $('<input type="hidden" name="template">') ).appendTo(body).attr({ action: tplOptions.uploadUrl, target: 'upload-image', enctype: 'multipart/form-data', method: 'post' }); //插入设置按钮 for (var tpl in tplOptions.templates) { (function(tpl) { var td = $('.active .act').parent(); $('<span>设置 </span>').insertBefore(td.find('a')).addClass(attr('setting')).data('template', tpl); })(tpl); } //当前模板 (function() { try { var c urrentTemplate = $('.theme_ntpls .theme-preview .screenshot img').attr('src').match(/\/templates\/(.*?)\/preview.jpg/); if (tplOptions.templates) { $('<br>').insertBefore($('<span><strong></strong></span>').appendTo($('.theme_ntpls .theme-info')).addClass(attr('setting')).data('template', currentTemplate)); } }catch(err) {} })(); //绑定事件 body.on('click', '.' + attr('setting'), function() { $.ajax({ url: tplOptions.baseUrl, data: { template: $(this).data('template') }, cache: false, beforeSend: function() { loading(); editorMap = {}; }, success: function(data) { templateContent.slideUp(500, function() { optionArea.html(data).slideDown(); window.setTimeout(function() { initOptionSort(); initRichText(); loading(false); }, 0); }); } }); }).on('click', '.tpl-options-close', function() { optionArea.slideUp(500, function() { templateContent.slideDown(); }); }).on('click', '.option-sort-name', function() { var that = $(this); if (that.is('.selected')) { return; } var left = that.parent(), right = left.siblings('.option-sort-right'); left.find('.selected').removeClass('selected'); that.addClass('selected'); right.find('.option-sort-option').removeClass('selected').eq(that.index()).addClass('selected'); }).on('change', '.option-sort-select', function() { var that = $(this); var right = that.parent().siblings('.option-sort-right'); right.find('.option-sort-option').removeClass('selected').eq(that.find('option:selected').index()).addClass('selected'); }).on('mouseenter', '.tpl-options-form input', function() { input = $(this); trueInput.css(input.offset()); input.css('visibility', 'hidden'); trueInput.css('visibility', 'visible'); }).on('submit', 'form.tpl-options-form', function() { var that = $(this); $.ajax({ url: that.attr('action'), type: 'post', data: that.serialize(), cache: false, dataType: 'json', // beforeSend: loading, success: function(data) { showMsg(data.code, data.msg); }, error: function() { showMsg(1, '网络异常'); }, complete: function() { // loading(false); } }); return false; }).on('change', '.tpl-options-form input, .tpl-options-form textarea', function() { $('form.tpl-options-form').trigger('submit'); }); //定义方法 var initRichText = (function() { var num = 0; return function() { $('.option-rich-text').each(function() { var that = $(this); if (that.attr('id') === undefined) { that.attr('id', 'option-rich-text-' + (num++)); } loadEditor(that.attr('id')); }); window.setTimeout(function() { for (var id in editorMap) { editorMap.container.style.width = ''; } }, 100); } })(); window.setImage = function(src, path, code, msg) { if (code == 0) { $('').val(path).trigger('change'); $('').attr('href', src).find('img').attr('src', src); } else { alert('上传失败:' + msg) } trueInput.val(''); target = ''; loading(false); }; function initOptionSort() { $('.option-sort-left').each(function() { $(this).find('.option-sort-name:first').addClass('selected'); }); $('.option-sort-right').each(function() { $(this).find('.option-sort-option:first').addClass('selected'); }); } function loading(enable) { if (enable === undefined) { enable = true; } if (enable) { loadingDom.addClass('loading'); } else { loadingDom.removeClass('loading'); } } function showMsg(code, msg) { message.text(msg).css('display', ''); if (code == 0) { message.attr('class', 'alert alert-info alert-tpl'); if (timer) { window.clearTimeout(timer); } timer = window.setTimeout(function() { message.hide(); }, 2600); } else { message.attr('class', 'alert alert-danger alert-tpl'); } } function attr(name) { return tplOptions.prefix + name; } function loadEditor(id) { editorMap = editorMap || KindEditor.create('#' + id, { resizeMode: 1, allowUpload: false, allowImageUpload: false, allowFlashUpload: false, allowPreviewEmoticons: false, filterMode: false, afterChange: (function() { var t, i = 0; return function() { var that = this; if (t) { window.clearTimeout(t); } if (i++ > 0) { t = window.setTimeout(function() { that.sync(); $(that.srcElement).trigger('change'); }, 2000); } } })(), urlType: 'domain', items: }); } }); 温馨提示:本教程只针对emlog6.0.0版本,参考young小杰博客修改而来,其他emlog版无效!!!教程有小问题,不管模板支持不支持模板设置,都会显示设置2字。 参考教程:http://bbs.emlog.net/thread-65337-1-1.html
      • 2018年10月6日
      • 16151 阅读
      • 2 评论
      Emlog教程
    • PHP实现长链接转化成新浪短链接API代码分享 2018-9-13
      PHP实现长链接转化成新浪短链接API代码分享 短网址服务,可能很多朋友都已经不再陌生,特别是在微博应用中十分普遍,比如,当我们在腾讯、新浪微博发微博时有时发很长的网址连接,但由于微博只限制140个字,所以微博就自动把您发的长网址给转换成短网址了。 我们可能会收到类似于这样的短信,发现其中的链接并不是常规的网址链接,而是个短小精悍的短链接,产品中经常需要这样的需求,如果在给用户下发的短信中是一个很长的连接,用户体验肯定很差,因此我们需要实现长链接转换成短链接。 首先需要申请一个新浪微博开放平台的appkey,申请地址是http://open.t.sina.com.cn/,不过审核相对严格而且比较慢。新浪微博短网址API接口有两种实现方式,第一种是原始的OAuth1.0的验证方式,比较简单,无需申请token,第二种是OAuth2.0的验证方式,这个需要access_token(虽然官方文档http://t.cn/8FgFoL8说可以像第一种那样直接通过appkey验证,但是测试不成功)。因此下面的示例采用的是第一种方式,即直接通过appkey验证。 新浪短网址在线生成代码php <?php $http= strtolower(substr($_REQUEST,0,7)); $https=strtolower(substr($_REQUEST,0,8)); $slurl = $http=='http://'||$https=='https://' ? $_POST:'http://'.$_POST; function sina($type,$url){$key = '31641035'; /* 新浪APPKEY,请改成自己的 */ if($type){ $baseurl = 'http://api.t.sina.com.cn/short_url/shorten.json?source='.$key.'&url_long='.$url; }else{ $baseurl = 'http://api.t.sina.com.cn/short_url/expand.json?source='.$key.'&url_short='.$url; } $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$baseurl); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_TIMEOUT,15); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $strRes=curl_exec($ch); curl_close($ch); $arrResponse=json_decode($strRes,true); if(isset($arrResponse->error)||!isset($arrResponse)||$arrResponse == '')return 0; if($type){ return $arrResponse; }else{ return $arrResponse; }}?> html代码 <form method="post" name="commentform" onSubmit="return SLyz();"> <div class="dwz-ms">输入你要简化的URL网址:</div> <textarea id="slurl" name="slurl"></textarea> <button type="submit"/>生成短网址</button> </form 获取代码 <?php if($_POST){?>原网址:<?php echo $_POST.'<br />';}?> <?php if(sina(1,$slurl)!='0'){?>短网址:<?php echo sina(1,$slurl);?><?php }?>  演示地址:dwz.shuyong.net
      • 2018年9月13日
      • 10675 阅读
      • 3 评论
      代码教程
    • 2
    • 3
    • 4
    • 5
    • 6
    博主栏壁纸
    博主头像 舍力

    静以修身。

    1140 文章数
    3547 评论量
    • emlogpro实现分站功能(同一后台,不同前端)
    倒计时
    最新评论
    • 肥饶
      肥饶
      1 年前
      这个好  随机
    • 爱比宝
      爱比宝
      2 年前
      好工具,谢谢分享
    • 上海网站建设
      上海网站建设
      2 年前
      感谢分享
    • ET聊
      ET聊
      2 年前
      分享资源交流经验
    • 百胜综合盘
      百胜综合盘
      2 年前
      很8错!感谢分享
    • 百科情报站
      百科情报站
      3 年前
      你这网站可以哦, 来换个友链吧
    • 舍力
      舍力
      3 年前
      @言之在线:win10都还没有弄明白呢
    • 言之在线
      言之在线
      3 年前
      win11好还是win10好
    • 天兴工作室
      天兴工作室
      3 年前
      网站整改,我网站友链全部下了,麻烦我的链接也可以删掉了
    • 贵金属回收
      贵金属回收
      3 年前
      善良让这世界有了温暖,如果都是冷漠,那多无趣
    载入天数...载入时分秒...
    基于宝塔面板,数据存储于阿里云ECS 粤ICP备11021420号