使用引号导入PHP字符串

时间:2014-09-23 17:37:35

标签: php expressionengine

所以我将ExpressionEngine字段导入php数组。我想显示一个名为{gearboxx_body}的字段,除非该字段有超过300个字符,在这种情况下我想显示一个名为{article_blurb}的字段。我很确定在ExpressionEngine字段和条件语中没有办法做到这一点,所以我尝试了一些PHP,我刚刚开始学习:

<?php 

  $info = array('{gearboxx_body}','{article_blurb}');

  if(mb_strlen($info[0]) <= 300) 
    echo($info[0]);
  }

  else {
   echo($info[1]);
  }

?>

这样效果很好,但是有问题。如果标记包含任何撇号或引号,则它将结束字符串,并且页面将不会加载。那我该怎么办呢?我试图替换字符串中的引号,但我必须首先从字段中加载字符串,并且一旦我这样做,页面就已经破坏了。

希望这是有道理的。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我建议您在EE插件中而不是在模板中处理:

  • 渲染速度更快(因为您不需要模板中PHP的开销)
  • 更安全可靠
  • 一旦你掌握了EE开发的基础知识,就可以更快地发展这是一种有用的生活技能
  • 全方位的最佳实践

我想到的插件有三个参数:

身体,模糊和角色限制。

假设您将插件称为“Blurby”。在模板中你只需要:

{exp:blurby body="{gearboxx_body}" blurb="{article_blurb}" char_limit="300"}

它会根据您在插件本身中定义的逻辑,可变地返回任一字段。

请参阅plugin developer documentation


或者,您可以使用可怕的HEREDOC语法在将变量传递到数组之前设置变量:

$body = <<<EOT
{gearboxx_body}
EOT;

$blurb = <<<EOT
{article_blurb}
EOT;