织梦用PHP判断flag自定义属性是否存在的方法

织梦CMS 9个月前 (11-03) 43次浏览 已收录 0个评论

织梦 DedeCMS 自带有自定义属性:头条[h],推荐[c],幻灯[f]等,可以非常自由地进行调用,在首页或列表中调用方法如下:

{dede:arclist typeid='1' flag='c'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}

如果在文章内容页把自定义属性调用出来用,试试用

{dede:field.flag/}

显示出来的是不是文字,而是

c,p

这是正常的,因为他只是调用数据表里的内容,如果要把指定的文字调用出来就需要 array 处理一下,用到 PHP 的 strstr 函数,下面给出方法:

{dede:field name='array' runphp='yes'}
if(@me['typeid']=='1' && strstr(@me['flag'],'c')=='c') @me='[推荐]'.@me['title']';
else @me=@me['title'];
{/dede:field}

注意这个例子增加了栏目的 ID 判断条件,如果不需要判断就直接用:

{dede:field name='array' runphp='yes'}
if(strstr(@me['flag'],'c')=='c') @me='[推荐]'.@me['title'];
else @me=@me['title'];
{/dede:field}

PHP 判断字符串是否包含方法

方法一、使用 strstr,strstr 返回需要判断是否被包含的字符开始到结束的字符串,如果没有返回值,则不包含。

举例:判断是否包含字符“#”:

<?php
$str='abc#defg';
$in=strstr($str,'#');
echo $in;//输出结果为:#defg
?>

方法二、使用 stristr,它的用法和 strstr 的完全一样。唯一的区别是 stristr 不区分大小写,而 strstr 区分大小写。可以根据实际情况是否区分大小写来使用。

方法三、使用 strpos,但它对中文件的支持不是很好,它的返回值为 boolean 型,也就是 true 和 false(真和假)。执行速度比 stristr 和 strstr 都快,strpos 函数中有一个参数用于指定判断的位置,默认为空,即判断整个字符串。

下面看例子:

<?php
$str='bde';
$in='b';
$output=strpos($str,$in);
?>

方法四、将字符串用 explode 来拆分数组再判断。如下:

function chstr($str,$in){
$tmparr = explode($in,$str);
if(count($tmparr)>1){
return true;
}else{
return false;
}
}
$str='abc#defg';
$in='#';//判断是否包含#这个字符
$bh=chstr($str,$in);
if($bn){
echo '字符串'.$str.'包含'.$in;
}else{
echo '字符串'.$str.'不包含'.$in;
}

本文版权归湖南 SEO所有丨如需转载请注明文章出处
原文地址:https://www.wangxiaoyou.com/2621.html
喜欢 (0)
[736035566@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址