【问题标题】:getting image extension in Twig Symfony2在 Twig Symfony2 中获取图像扩展
【发布时间】:2017-01-26 03:08:04
【问题描述】:

我对 twig 不是很熟悉,正在尝试获取图像扩展,但不确定如何在 twig 中执行此操作,在 php 中使用字符串函数(例如 substr 和 indexof 或以下内容)非常容易:ext=pathinfo ('/testdir/dir2/image.gif', PATHINFO_EXTENSION),我不想在控制器中对其进行编码并将其作为参数传递给 twig,而是我想直接在 twig 布局中提取它,所以我该怎么做这样做?

【问题讨论】:

    标签: symfony twig


    【解决方案1】:

    你可以通过这种方式获取文件扩展名

    {{ "filename.txt"|split('.')|last }}
    

    【讨论】:

    • 你太棒了。
    【解决方案2】:

    一种方法是使用 Twig 的 slice 过滤器。

    例如,如果您的图像文件的路径是imgSrc,那么imgSrc|slice(-4) 将为您提供文件名的最后4 个字符(例如.gif.jpgjpeg)。

    【讨论】:

      【解决方案3】:

      您可以创建Twig extension,它将包含

      命名空间 YourApp\AcmeBundle\Twig;

      class MyTwigExtension extends \Twig_Extension
      {
      
      public function getFilters(){
          return array(
              new \Twig_SimpleFilter('ext', array($this, 'ext')),
          );
      }
      
      public function ext($filepath){
          $ext = pathinfo($filepath, PATHINFO_EXTENSION);
          return $ext;
      }
      
      }
      

      【讨论】:

      • 作为一个大人物,我会避免这种解决方案,因为如果我必须使用 twig 扩展,那么我必须知道如何使用范围,因为扩展不会延迟加载。正如我在您给我的文章中所读到的那样,无论如何,谢谢,至少我对此有所了解:)
      【解决方案4】:

      在 twig 中,使用拆分过滤器。见http://twig.sensiolabs.org/doc/filters/split.html

      您也可以简单地在控制器中获取扩展并将其传递给 twig。

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        相关资源
        最近更新 更多