Php 如何删除细枝中文本的空白?
我在使用symfony2时使用了细枝模板引擎。我正试图找到一种从文本中删除空白的方法 例如,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(
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换成其他的东西,它会工作的。古怪的