我有一个PHP脚本,用户将输入如下名称:Alex_Newton
,
但是,有些用户会使用空格而不是下划线,所以我的问题是:
如何在PHP中使用下划线自动替换空格?
答案 0 :(得分:333)
$name = str_replace(' ', '_', $name);
答案 1 :(得分:56)
正如其他人已经解释了如何使用str_replace
来解决这个问题,您也可以使用正则表达式来实现这一点。
$name = preg_replace('/\s+/', '_', $name);
答案 2 :(得分:26)
$name = str_replace(' ', '_', $name);
答案 3 :(得分:10)
答案 4 :(得分:10)
致电http://php.net/str_replace:$input = str_replace(' ', '_', $input);
答案 5 :(得分:7)
使用str_replace:
str_replace(" ","_","Alex Newton");
答案 6 :(得分:6)
你也可以这样做,以防止单词以_words_more_words_等下划线开头或结尾,这样可以避免以空格开头和结尾。
$trimmed = trim($string); // Trims both ends
$convert = str_replace('', '_', $trimmed);
答案 7 :(得分:1)
这是我的代码的一部分,它使空格成为下划线,用于命名我的文件:
$file = basename($_FILES['upload']['name']);
$file = str_replace(' ','_',$file);
答案 8 :(得分:1)
我喜欢这个
$option = trim($option);
$option = str_replace(' ', '_', $option);
答案 9 :(得分:1)
Strtr
替换单个字符而不是字符串,因此对于此示例来说这是一个很好的解决方案。据说strtr
比str_replace
更快(但对于这个用例,它们都快得无法估量)。
echo strtr('Alex Newton',' ','_');
//outputs: Alex_Newton
答案 10 :(得分:0)
您可以使用str_replace
说您的名字在变量$name
中
$result = str_replace(' ', '_', $name);
另一种方法是使用正则表达式,因为这将有助于消除二次空间等。
$result= preg_replace('/\s+/', '_', $name);
答案 11 :(得分:0)
str_replace
-很明显的解决方案。但是有时您需要知道确切的空间。我在csv文件中的空格有问题。
有两个字符,但其中一个是0160(0x0A0),另一个是不可见的(0x0C2)
我的最终解决方案:
$str = preg_replace('/\xC2\xA0+/', '', $str);
我从mc(午夜查看器-F3-F9)的HEX查看器中找到了不可见的符号
答案 12 :(得分:0)
如果您有参数$string
,并希望将其替换为下划线(_)。
$string = "Hello All.";
$newString = str_replace(' ', '_', $string);
输出将为Hello_All.