2010-08-09 52 views
-1

asked earlier我怎么能摆脱额外的连字符和空格添加在例如用户提交的文本的结束和开始,-ruby-on-rails-ruby-on-rails你们建议trim()这本身工作正常,但是当我把它添加到我的代码根本不起作用,它实际上对我的代码做了一些时髦的事情。PHP装饰问题

我试着将trim()代码放在我的代码中的任何地方,但没有任何工作可以有人帮助我摆脱在用户提交的文本的末尾添加额外的连字符和空格?

这是我的PHP代码。

$tags = preg_split('/,/', strip_tags($_POST['tag']), -1, PREG_SPLIT_NO_EMPTY); 
$tags = str_replace(' ', '-', $tags); 
+0

只是看到http://php.net/manual/en/function.trim.php – Tobias 2010-08-09 14:43:11

+0

为什么-1评级? – myTIME 2010-08-09 14:43:21

+0

你看过手册中的例子:http://php.net/manual/en/function.trim.php? – 2010-08-09 14:44:07

回答

2

更新修剪的语句,以便在阵列中更新每个项目如下:

foreach($tags as $key=>$value) { 
    $tags[$key] = trim($value, '-'); 
} 

这应该让你修剪基于字符串每个值的预期。

+0

没有修剪只是不会为我工作:( – myTIME 2010-08-09 14:59:03

+1

我编辑了上述回应基于马克的建议。 – Joseph 2010-08-09 15:23:25

2

如果你有一个字符串,你可以做到这一点,去除其中的开头和结尾连字符:

$tag = trim($tag, '-'); 

您的问题是preg_split返回一个数组,但trim接受字符串。您需要为数组中的每个字符串执行上述操作。

关于修剪空白:如果您首先将所有空格转换为连字符,那么不需要在之后修剪空格 - 空格已经消失。但要小心,因为术语“空白”和“空间”具有不同的含义。你的问题似乎混淆了这两个术语。

+0

是的,我确实尝试过。 – myTIME 2010-08-09 14:41:58

+0

这是对的,我认为你在做某事。其他错误;) – Tobias 2010-08-09 14:43:53

+0

这不会修剪空白,但?我的印象是,可选列表将只修剪这些字符。 – 2010-08-09 14:46:03

0

验证您尝试修剪的连字符是否是包裹-ruby-on-rails-的同一连字符。例如,这些都是看起来类似的所有不同的字符: - , - , - , - 。

0

Im新的StackOverflow.com,所以我希望我写的函数以某种方式帮助你。你可以在第二个参数中指定你希望修剪的字符,例如我已经将它设置为仅删除空格和默认的“破折号”,我已经使用'ruby-on-rails'对它进行了测试, ' - - - ruby​​-on-rails - - - - - '这两个例子都产生了结果:'ruby-on-rails'。

正则表达式可能只是一个方法,但我希望它可以帮助你,只要回答如果你有任何问题实现它或w/e。

function customTrim($s,$c='- ') 
{ 
    preg_match('#'.($a='[^'.$c.']').'.{1,}'.$a.'#',$s,$match); 
    return $match[0]; 
}