【问题标题】:Php explode and echo second elementphp爆炸并回显第二个元素
【发布时间】:2019-06-05 10:14:07
【问题描述】:

我有一个文件使用这个代码

<?php echo $block->getStoreName(); ?>

在网站上输出以下内容

第一第二第三

但是我只想输出上面字符串的第三个元素,First Second不要改变它们总是保持不变。

第三

我正在使用此代码检索字符串的第三部分

echo explode('First Second', $block->getStoreName())[1];

它抛出一个错误。

错误过滤模板:注意:未定义偏移量:2 in /home/xyz/m230.xyz.com/app/code/Vendor/Siteinfo/view/frontend/templates/storename.phtml 第 1 行

storename.phtml 中的第 1 行是

<?php echo explode('First Second', $block->getStoreName())[1]; ?>

我不确定这样做是否正确。

更新 - 尝试更清楚地解释我想要实现的目标。

【问题讨论】:

  • 请分享您遇到的完整错误
  • 嗯,按照你的例子,Second element Unique 不包含KOSH mArt...所以...
  • 你写“它抛出了一个错误。”。但是你没有告诉我们那个错误是什么意思。 为什么不呢?
  • echo explode(' ', $block->getStoreName())[2];
  • @mario 是的。显然,正则表达式就是答案:-)

标签: php module magento2.2


【解决方案1】:
echo explode(' ', $block->getStoreName())[2];

【讨论】:

  • 也许你应该清理它,这样如果字符串不是 OP 所期望的,它就不会因错误而失败
  • 是的,根据他的问题,这只是静态解决方案。如果他需要动态的,那么他需要向我们提供他所想的细节和逻辑。他必须从任何变量中获取“第二元素”部分。什么是预期的字符串可以像“第一个元素”,“第三个元素”之类的。因为如果它是默认框架的一部分,那么它将像我建议的那样输出字符串。
  • 感谢这个工作,没有结束 ?> php 标签。我不知道这是否应该是这样,但它确实有效。
【解决方案2】:

这应该可以解决问题。

// checks if string has "Unique"
if(mb_strpos($block->getStoreName(),'Unique') !== false){
    // prints "Unique"
    echo "Unique";
}

【讨论】:

    猜你喜欢
    • 2013-06-08
    • 2012-02-07
    • 2020-02-16
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多