从字符串PHP中删除空格并插入数据库

时间:2015-01-27 11:01:32

标签: php mysql

我试图从字符串中删除空格,但只是从字符串的开头和结尾处删除。 Everythink工作正常,但在将字符串插入数据库之后没有空格,但在同一个地方是"�"。

这是我的代码:

$synonimy = $_POST['fsynoms'];
$synonimyPodzielone = explode( ',', $synonimy );
for($k=0; $k < count($synonimyPodzielone); $k++)
{
    for($m=0; $m<strlen($synonimyPodzielone[$k]);$m++)
    {

        if($synonimyPodzielone[$k][$m]==" ")
        {
            $synonimyPodzielone[$k][$m]="";
        }
        else
        {
            break;
        }
    }
}

我也尝试过使用str_replace trim和同样的问题。

知道怎么做吗?

5 个答案:

答案 0 :(得分:1)

trim($str)函数(http://php.net/manual/en/function.trim.php)很难错误地使用,你只是不存储返回值吗? (PHP中的trim函数不会修改参数,而是返回一个删除了空格的新字符串。)

$synonimy = $_POST['fsynoms'];
$synonimy = trim( $synonimy );

insert_into_database( $synonimy );

答案 1 :(得分:1)

PHP修剪:http://php.net/manual/en/function.trim.php应该让生活更轻松。

for($m=0; $m<strlen($synonimyPodzielone[$k]);$m++)
{
    $synonimyPodzielone[$k][$m] = trim($synonimyPodzielone[$k][$m]);    
}

答案 2 :(得分:1)

您正在寻找的是trim。在array_map的帮助下,您甚至可以跳过for循环。

$input = " foo , bar , baz , qux ";
$words = explode(",", $input);
$wordsTrimmed = array_map("trim", $words);
$csvString = implode(",", $wordsTrimmed);

echo $csvString; // foo,bar,baz,qux

你当然可以把它弄得更整洁:

function trimWords($string, $glue = ",") {
    return implode($glue, array_map("trim", explode($glue, $string)));
}

$input = " foo , bar , baz , qux ";
$csvString = trimWords($input);

echo $csvString; // foo,bar,baz,qux

答案 3 :(得分:0)

甚至更简单。

$synonimy = trim($_POST['fsynoms']);
insert_into_database($synonimy);

答案 4 :(得分:0)

使用strtr也是可能的(并且快速):

$synonimy = trim($_POST['fsynoms']);
$synonimy = strtr($synonimy, array(' ,' => ',', ', '=>','));

注意:如果您的字符串包含要删除的重复空格,在这种情况下您可以使用:

$synonimy = preg_replace('~\s*(,)\s*|\A\s+|\s+\z~u', '$1', $_POST['fsynoms']);

处理unicode字符串。