分类 "PHP" 下的文章

$order=$obj->getRequest('order_num');//获取数据
$tel=$obj->getRequest('mobiletel');
$tg_name=$obj->getRequest('tuangou_name');
$urlpar="order_num=$order&mobiletel=$tel&tuangou_name=$tg_name";
//where数据,增加查询条件
$where='u.id=t.uid';
if ($order!=''){
$where.=" and order_num like '%$order%'";
}
if ($tel!=''){
$where.=" and mobiletel like '%$tel%'";
}
if ($tg_name!=''){
$where.=" and tuangou_name like '%$tg_name%'";
}
//列表显示,实现分页
$page=$obj->getRequest('page');
$pager = $obj->pager ( "u.mobiletel,t.tuangou_name,t.order_num,t.time,t.money",  "user as u,user_tuangou as t", $where, "t.time desc", 15, $page,$urlpar);
?>

$mobile="13512345678"    $msg="你好!欢迎光临*网站!"
public send_emay($mobile, $msg) {
header ( "content-type:text ml;charset=gbk" );
import ( "@.ORG.emaysms.emaysms" );
/ 网关地址/
$gwUrl = 'http://*';

/ 序列号,请通过销售人员获取/
$serialNumber = '';

/ 密码,请通过销售人员获取/
$password = '*';

/登录后所持有的SESSION KEY,即可通过login方法时创建/
$sessionKey = '123456';

/连接超时时间,单位为秒/
$connectTimeOut = 2;

/远程信息读取超时时间,单位为秒/
$readTimeOut = 10;

/*
$proxyhost        可选,代理服务器地址,默认为 false ,则不使用代理服务器
$proxyport        可选,代理服务器端口,默认为 false
$proxyusername    可选,代理服务器用户名,默认为 false
$proxypassword    可选,代理服务器密码,默认为 false
*/
$proxyhost = false;
$proxyport = false;
$proxyusername = false;
$proxypassword = false;

$client = new emaysms ( $gwUrl,  $serialNumber,  $password,  $sessionKey,  $proxyhost,  $proxyport,  $proxyusername,  $proxypassword,
$connectTimeOut, $readTimeOut );
/iconv转码作用/
$statusCode = $client->sendSMS ( $mobile, iconv ( "utf-8", "gbk", $msg ) . iconv ( "utf-8", "gbk", "[**网站]" ) );

return $statusCode;
}

THINKPHP 中关联查询(多表查询)可以使用 table() 方法或和join方法,请看示例:
联合查询
1、原生查询
$sql = 'select p.product_name, z.message as zmessage, z.rdtime, r.message, r.rdtime from wsd_product as p, wsd_product_zixun as z, wsd_product_zixun_reply as r  where p.id = z.lipin_id and z.id = r.zixun_id order by z.rdtime';
$list = $Form->query($sql);
2、join() 两表查询
$list = $Form->join('think_sort ON think_form.sort_id = think_sort.sort_id' )->select();
3、join() 多表查询
$list = $Form->join('think_sort ON think_form.sort_id = think_sort.sort_id' )->join('think_brand ON think_form.brand_id = think_brand.brand_id' )->select();
4、table()
$list = $user->table('user_status stats, user_profile profile')->where('stats.id = profile.typeid')->field('stats.id as id, stats.display as display, profile.title as title,profile.content as content')->order('stats.id desc' )->select();

问题:使用DedeCMS采集的文章有分页,生成页面后内容显示不全。如何去除采集文章中的#p #副标题#e#?如何不让有#p #副标题#e#的文章分页
解决:修改生成页面的代码,include/arc.archives.class.php
方法:
一、打开include/arc.archives.class.php
注释250-277行
//$this->SplitFields = explode("#p #",$this->Fields[$this->SplitPageField]);
//$i = 1;
//foreach($this->SplitFields as $k=>$v)
//{
// $tmpv = cn_substr($v,50);
// $pos = strpos($tmpv,'#e#');
// if($pos>0)
// {
// $st = trim(cn_substr($tmpv,$pos));
// if($st==""||$st=="副标题"||$st=="分页标题")
// {
// $this->SplitFields[$k] = preg_replace("/^(.*)#e#/is","",$v);
// continue;
// }
// else
// {
// $this->SplitFields[$k] = preg_replace("/^(.*)#e#/is","",$v);
// $this->SplitTitles[$k] = $st;
// }
// }
// else
// {
// continue;
// }
// $i++;
//}
//$this->TotalPage = count($this->SplitFields);
//$this->Fields['totalpage'] = $this->TotalPage;
二、从250行开始加上
$this->SplitFields = preg_replace("/^(.*)#e#/","",$this->Fields[$this->SplitPageField]);
$this->SplitFields = preg_replace("/副标题#e#/","",$this->SplitFields);
$this->SplitFields = preg_replace("/#p #(.*)#e#/is","",$this->SplitFields);
三、之后修改691行
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];

$this->Fields[$this->SplitPageField] = $this->SplitFields;

注:由于显示问题,上面代码中有多余空格

问题:使用DedeCMS时,文章标题显示不全,如何修改DedeCMS文章标题长度?
解决:在dedecms后台修改长度,同时修改数据库中dede_archives表中title的长度
方法:
步骤一:进入dedecms后台,系统——系统基本参数——其他选项——文档标题最大长度——在这修改为150(如果是utf-8版本的标题就可以输入50个汉字了)
步骤二:系统——SQL命令行工具——输入语句:
alter table dede_archives modify title varchar(50);    (因为数据库varchar(50) 就是可以输入50个汉字或50个字符)
注:varchar(M) 其中的M代表的是字符数,而不是字节数,和编码类型无关 无论是哪种编码都只能存M个字符,比如:M=10 那么他能存10个汉字或者存10个英文字母
步骤三:如果是从采集中导入的话,还需要更改采集文件dede/co_export.php的223行
将$mainSql = str_replace('@title@', cn_substr($title, 60), $mainSql);这句中的60改为150

注:步骤二可以使用数据库工具完成。
参考:http://blog.sina.com.cn/s/blog_439248a101016zoi.html