Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何删除细枝中文本的空白?_Php_Symfony_Twig - Fatal编程技术网

Php 如何删除细枝中文本的空白?

Php 如何删除细枝中文本的空白?,php,symfony,twig,Php,Symfony,Twig,我在使用symfony2时使用了细枝模板引擎。我正试图找到一种从文本中删除空白的方法 例如,I play将变成I play 我试过: 试试这个: {{ "I plays"|replace({' ':''}) }} 您也可以创建自己的过滤器来实现这一点 示例: class MyExtensions extends \Twig_Extension { public function getFilters() { return array(

我在使用symfony2时使用了细枝模板引擎。我正试图找到一种从文本中删除空白的方法

例如,
I play
将变成
I play

我试过:

试试这个:

{{ "I plays"|replace({' ':''}) }}

您也可以创建自己的过滤器来实现这一点

示例:

class MyExtensions extends \Twig_Extension
{
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('removeWhiteSpace', array($this, 'removeWhiteSpace'), array('is_safe' => array('html'))),
        );
    }

    public function removeWhiteSpace($string)
    {

       return preg_replace('/\s+/', '', $string);
    }
}
将其声明为服务:

myextensions.twig_extension:
      class: YourProject\YourBundle\Twig\MyExtensions
      public: false
      tags:
          - { name: twig.extension }
并在您的小树枝模板中调用它:

{{ "Test remove white space"|removeWhiteSpace }}

首先,让我们看看您尝试了什么以及为什么不起作用:

  • 无空格:不起作用,因为“使用无空格标记删除HTML标记之间的空格不删除HTML标记内的空格或纯文本中的空格”,请参阅
  • 修剪:不起作用,因为“修剪过滤器从字符串的开始结束去除空白(或其他字符)”请参阅
您需要使用以下内容:

{{ 'Some Text With Spaces'|replace({' ': ''}) }}
这将输出:

SomeTextWithSpaces

更多详细信息,请参阅。

对于我来说,当字符串包含不间断的空格时,这不起作用:

stringWithNonBreakingWhitespace|replace({' ':''}
要替换非制动空格,必须使用转义序列:

stringWithNonBreakingWhitespace|replace({'\xc2\xa0':''}

@KubiRoazhon:那么你100%确定这些是空白吗?替换方法函数有点不同,请参见[此处]()。@briosheje。我用一个简单的text=>I play:/try
replace({'':''})
测试了它。。虽然我不确定,但我总是看到JayeshI所展示的语法中,为了避免其他用户的误解,对这个答案进行了编辑。这对我来说很有效。我正在尝试
{{“我的字符串”| replace('',)}
,但它不起作用。如果我把replace-with-string换成其他的东西,它会工作的。古怪的