百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[技术交流] 技术大牛,请教下,如何将这2段连起来作为一段代码? [复制链接]
查看:4882 | 回复:10

225

主题

5008

帖子

7302

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
5184
鲜花
16
注册时间
2007-12-28

落伍手机绑定

发表于 2020-8-4 10:08:26 | 显示全部楼层 |阅读模式 来自 中国广东佛山
技术大牛,请教下,如何将这2段连起来作为一段代码?

网上找的:
if($this->TotalPage > 1) {
        //用正则匹配把分页符去掉
$this->Fields['body2'] = preg_replace('/#p#分页标题#e#/U', '',$this->Fields['body2']);
$this->SplitFields = explode("#p2222#",$this->Fields['body2']);
$this->Fields['tmptitle'] = (empty($this->Fields['tmptitle']) ? $this->Fields['title'] : $this->Fields['tmptitle']);
$this->Fields['title'] = $this->Fields['tmptitle'];
$this->TotalPage = count($this->SplitFields);
$this->Fields['totalpage'] = $this->TotalPage;
$TRUEfilenameall = $this->GetTruePath().$fileFirst."_all.".$this->ShortName;
$this->ParseDMFields(1,0);
$this->dtp->SaveTo($TRUEfilenameall);
if($cfg_remote_site=='Y' && $isremote == 1)
{
  //分析远程文件路径
  $remotefile = str_replace(DEDEROOT, '', $TRUEfilename);
  $localfile = '..'.$remotefile;
  //创建远程文件夹
  $remotedir = preg_replace("#[^\/]*\.html#", '', $remotefile);
  $this->ftp->rmkdir($remotedir);
  $this->ftp->upload($localfile, $remotefile, 'ascii');
}
}

我在后面增加一段生成移动端阅读全文的代码变成:
  1. if($this->TotalPage > 1) {
  2.         //用正则匹配把分页符去掉
  3. $this->Fields['body2'] = preg_replace('/#p#分页标题#e#/U', '',$this->Fields['body2']);
  4. $this->SplitFields = explode("#p2222#",$this->Fields['body2']);
  5. $this->Fields['tmptitle'] = (empty($this->Fields['tmptitle']) ? $this->Fields['title'] : $this->Fields['tmptitle']);
  6. $this->Fields['title'] = $this->Fields['tmptitle'];
  7. $this->TotalPage = count($this->SplitFields);
  8. $this->Fields['totalpage'] = $this->TotalPage;
  9. $TRUEfilenameall = $this->GetTruePath().$fileFirst."_all.".$this->ShortName;
  10. $this->ParseDMFields(1,0);
  11. $this->dtp->SaveTo($TRUEfilenameall);
  12. if($cfg_remote_site=='Y' && $isremote == 1)
  13. {
  14.   //分析远程文件路径
  15.   $remotefile = str_replace(DEDEROOT, '', $TRUEfilename);
  16.   $localfile = '..'.$remotefile;
  17.   //创建远程文件夹
  18.   $remotedir = preg_replace("#[^\/]*\.html#", '', $remotefile);
  19.   $this->ftp->rmkdir($remotedir);
  20.   $this->ftp->upload($localfile, $remotefile, 'ascii');
  21. }
  22. }


  23. if($this->TotalPage > 1) {
  24. $tempfile = $this->GetTempletFile();//引入移动端模板
  25. $tempfile = str_replace('default','wap',$tempfile);//前面的PC端,后面是手机端将其替换
  26.             if(!file_exists($tempfile) || !is_file($tempfile))
  27.             {
  28.             }                       
  29.         $this->Fields["displaytype"] = "st";
  30.         //预编译$th
  31.         //用正则匹配把分页符去掉
  32. $this->dtp->LoadTemplate($tempfile);
  33. $this->Fields['body2'] = preg_replace('/#p#分页标题#e#/U', '',$this->Fields['body2']);
  34. $this->SplitFields = explode("#p2222#",$this->Fields['body2']);
  35. $this->Fields['tmptitle'] = (empty($this->Fields['tmptitle']) ? $this->Fields['title'] : $this->Fields['tmptitle']);
  36. $this->Fields['title'] = $this->Fields['tmptitle'];
  37. $this->TotalPage = count($this->SplitFields);
  38. $this->Fields['totalpage'] = $this->TotalPage;
  39. $TRUEfilenameallm = $this->GetTruePath()."/m/".$fileFirst."_all.".$this->ShortName;// 移动端
  40. $this->ParseDMFields(1,0);
  41. $this->dtp->SaveTo($TRUEfilenameallm);// 移动端
  42. if($cfg_remote_site=='Y' && $isremote == 1)
  43. {
  44.   //分析远程文件路径
  45.   $remotefile = str_replace(DEDEROOT, '', $TRUEfilename);
  46.   $localfile = '..'.$remotefile;
  47.   //创建远程文件夹
  48.   $remotedir = preg_replace("#[^\/]*\.html#", '', $remotefile);
  49.   $this->ftp->rmkdir($remotedir);
  50.   $this->ftp->upload($localfile, $remotefile, 'ascii');
  51. }
  52. }
复制代码


结果就只有移动端没有PC端的生成,
怎样才能把2个语句串起来既可以生成PC端同时生成移动端?
技术太菜了,悲剧啊
女友
回复

使用道具 举报

607

主题

5223

帖子

6541

积分

落伍者(三羊开泰)

江湖小虾米

Rank: 3Rank: 3

贡献
2870
鲜花
7
注册时间
2009-4-1

QQ绑定落伍手机绑定

发表于 2020-8-4 10:15:35 | 显示全部楼层 来自 中国四川成都
具体是啥子呢  
回复 支持 反对

使用道具 举报

335

主题

6374

帖子

5711

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
54
鲜花
4
注册时间
2013-9-3

QQ绑定落伍微信绑定落伍者落伍手机绑定

发表于 2020-8-4 12:08:14 | 显示全部楼层 来自 中国新疆乌鲁木齐
亿万资源吧(免费资源)
亿万资源网(免费游戏)
亿万资源(免费素材)
回复

使用道具 举报

225

主题

5008

帖子

7302

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
5184
鲜花
16
注册时间
2007-12-28

落伍手机绑定

 楼主| 发表于 2020-8-4 13:57:59 来自落伍手机版 | 显示全部楼层 来自 中国广东佛山
dede的生成全文阅读功能,只能pc端生成或wap端生成,我想它能两者可同时生成。淘宝上问了几个商家,这不会那不懂都改不了,还没说到价格呢,也不知道他们怎么赚钱的,这个功能对懂php的应该不难吧?
回复 支持 反对

使用道具 举报

225

主题

5008

帖子

7302

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
5184
鲜花
16
注册时间
2007-12-28

落伍手机绑定

 楼主| 发表于 2020-8-4 13:59:26 来自落伍手机版 | 显示全部楼层 来自 中国广东佛山
www。cnblogs.com/alibai/p/3982305.html这个功能有说明
回复 支持 反对

使用道具 举报

36

主题

373

帖子

322

积分

落伍者(一心一意)

Rank: 1

贡献
447
鲜花
0
注册时间
2017-11-4

落伍手机绑定落伍微信绑定

发表于 2020-8-5 09:16:34 | 显示全部楼层 来自 中国河南郑州
技术真牛啊!!!
回复 支持 反对

使用道具 举报

247

主题

5287

帖子

7058

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
1265
鲜花
50
注册时间
2005-7-15

落伍草根英雄

发表于 2020-8-5 09:43:26 | 显示全部楼层 来自 中国河南郑州
你等等 发表于 2020-8-4 13:57
dede的生成全文阅读功能,只能pc端生成或wap端生成,我想它能两者可同时生成。淘宝上问了几个商家,这不会 ...
只能pc端生成或wap端生成

是不是哪个放在后面生成哪个?

  1.   //分析远程文件路径
  2.   $remotefile = str_replace(DEDEROOT, '', <font color="Red">$TRUEfilename)</font>;
  3.   $localfile = '..'.$remotefile;
  4.   //创建远程文件夹
  5.   $remotedir = preg_replace("#[^\/]*\.html#", '', $remotefile);
  6.   $this->ftp-><font color="Red">rmkdir($remotedir)</font>;
  7.   $this->ftp->upload($localfile, $remotefile, 'ascii');
复制代码

$TRUEfilename 这个变量哪里冒出来的?
rmkdir($remotedir) 这个方法应该是删除并重新创建文件夹路径?

-------------------------------------------------------------------------------------------------
所以应该是这个:
PC端:$remotefile = str_replace(DEDEROOT, '', $TRUEfilenameall);
WAP:$remotefile = str_replace(DEDEROOT, '', $TRUEfilenameallm);

大雄你怎么啦打起精神来哟.....
回复 支持 反对

使用道具 举报

225

主题

5008

帖子

7302

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
5184
鲜花
16
注册时间
2007-12-28

落伍手机绑定

 楼主| 发表于 2020-8-5 15:43:06 | 显示全部楼层 来自 中国广东佛山
zess 发表于 2020-8-5 09:43
是不是哪个放在后面生成哪个?

感谢感谢指点。

你问的这个问题“是不是哪个放在后面生成哪个?”
是的,我将生成移动端(A)或者PC端(B)的代码,放上去,哪个放在后面就只能生成哪个。
A代码或B代码都可以使用对应模板生成正确文件
同时用就不行。

我的理解,是不是用if($this->TotalPage > 1)重复了所以只认一个?
那,就是问题所在:怎么样合并可以同时使用对应模板生成各自正确的文件?



不过,后面
$TRUEfilename 这个变量哪里冒出来的?
是网上生成全文阅读时加上去的代码,接前面生成静态文件时类似引入的代码

rmkdir($remotedir) 这个方法应该是删除并重新创建文件夹路径?
这个是重建路径的意思。


尚未成功,用你加红的代码可以生成PC端,移动端的提示“  Not Found! ”
女友
回复 支持 反对

使用道具 举报

225

主题

5008

帖子

7302

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
5184
鲜花
16
注册时间
2007-12-28

落伍手机绑定

 楼主| 发表于 2020-8-5 17:47:54 | 显示全部楼层 来自 中国广东佛山
zess 发表于 2020-8-5 09:43
是不是哪个放在后面生成哪个?

不懂代码还是吃亏啊

问题解决了,把2个if($this->TotalPage > 1) {}
合成一个就行,我居然用了else语句 ,目不识丁啊~~~

也不是后面你说的加红语句问题,直接将生成语句放在同一个if($this->TotalPage > 1) {}中就可以了。
懂PHP的应该明白我说的,只是我花了几天才搞懂。
女友
回复 支持 反对

使用道具 举报

9742

主题

5万

帖子

7845

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
3987
鲜花
65
注册时间
2007-12-29

落伍手机绑定

发表于 2020-8-5 20:30:38 | 显示全部楼层 来自 中国湖南怀化
楼主好像是个技术大牛
免费扫高权重域名:加落伍创业干货群52385364
数字创业资质办理:天津盛世创举
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-11-28 02:41 , Processed in 0.071146 second(s), 32 queries , Gzip On.

返回顶部