php将字符串变量附加到另一个

时间:2018-05-31 18:21:13

标签: php

我有类似A - ZArtists & Makers的字符串,它是从foreach循环返回的。

输出如:

  

在新闻中

     

A - Z

     

艺术家&制造商

主要目标是删除空白并替换为-并转换为小写,我在下面做了如下:

$post = <!--returned from foreach the output given above-->

$postvalue= = str_replace(' ', '-', strtolower($post));   //condition 1

现在我需要完成所有替换,如下所示,更改应该在名为$postvalue

的单个变量中
$azpostvalue= str_replace("A - Z", "a-z", $post);  //condition 2
$artistspostvalue= str_replace("Artists & Makers", "artists-makers", $post);   //condition 3  
$spacepostvalue= str_replace(' ', '-', strtolower($postvalue));

意图是str_replace所有大写字母,额外空格并替换为小写字母,尤其是A - Z(space)&(space),我需要输出a-zartists-makers。< / p> 基本上所有这些变化(即条件1,2,3)都应该是一行中的$ postvalue。

但无法用单行

进行

2 个答案:

答案 0 :(得分:0)

好像你过度复杂了。只需使用:

$postvalue = str_replace("a - z", "a-z", $postvalue);

请注意,您已将其转换为小写,因此您应该匹配az,而不是AZ

除了您的代码有效之外,它会替换不属于a - z的字母 - 单词末尾的任何a都会删除其后的空格。

答案 1 :(得分:0)

为什么不先用空格替换连字符,然后再替换其余的空格。如果我理解你的要求那么这应该有用:

$post = <!--returned from foreach the output given above-->

$postvalue = str_replace(' - ', '-', strtolower($post));
$postvalue = str_replace(' ', '-', $postvalue);