从数组中的值中删除空格explode()返回

时间:2014-06-03 03:41:36

标签: php explode

我得到了这个代码:

  1. 要求用户上传包含此类格式的.docx erinanatasha cullerdanial joshstone
  2. 上传后,列表名称将被插入数据库。每个名字在数据库中都有teir自己的行。
  3. 以下代码运行良好。但插入名称后,数据库将变为如下所示:

    如果您看到名字erina,您会发现它有一个很大的空间。但其余的名字插入完美。这只是第一个。我不知道为什么。由于这个空间我无法搜索查询erina名称。我尝试了很多东西,但仍然得到了这个结果。

         <?php
        include 'configure.php';
    
        if(isset($_FILES['uploaded_file'])) 
        {
    
        $document_path = $_FILES ['uploaded_file']['tmp_name'];
        $document_name=$_FILES ['uploaded_file']['name'];
    
        function extracttext($filename,$filepath) 
        {
            $ext = explode('.', $filename);
            $ext=end ($ext);
            if($ext == 'docx')
            $dataFile = "word/document.xml";
            else
            $dataFile = "content.xml";    
    
            $zip = new ZipArchive;
    
            if (true === $zip->open($filepath)) 
           {
    
            if (($index = $zip->locateName($dataFile)) !== false) 
            {
                $text = $zip->getFromIndex($index);
    
                $xml = new DOMDocument;
                $xml->loadXML($text, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
    
                return strip_tags($xml->saveXML());
            }
    
            $zip->close();
          }
        return "File not found";
      }
    
        $friendslist = extracttext($document_name,$document_path);
    
        $id = "24";
    
        $friendarray = explode(",", $friendslist);
        $frienduserarray = array();
    
        for ($n = 0; $n < count($friendarray); $n++) 
        {
          $friendidpush = "('".$id."','".$friendarray[$n]."'),";
          array_push($frienduserarray, $friendidpush);
        }
    
    
        $query = "INSERT INTO keywords (criteria, value) VALUES ";
        $friendarray = explode(",", $friendslist);
    
        foreach ($friendarray as $friend) 
        {
               $query .= "('" . $id . "','" . $friend . "'),";
        }
    
          $query = substr($query, 0, -1); // remove trailing comma
    
          mysql_query($query);
    }
    ?>
    

    如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

或者,如果要在每个爆炸值上移除多个间距,可以使用array_map,然后trim。考虑这个例子:

// this is just a sample!
$friendarray = 'friend1,              friend2, friend3, friend4';
$friendarray = explode(',', $friendarray);
$friendarray = array_map('trim', $friendarray);
echo "<pre>";
var_dump($friendarray);
echo "</pre>";

答案 1 :(得分:3)

使用trim()将有助于删除每个单词中的空格。

$query .= "('" . $id . "','" . trim($friend) . "'),";

您可以参考trim()函数here的文档,以获得更多功能。

答案 2 :(得分:2)

在插入

之前使用trim()删除空格
foreach ($friendarray as $friend) 
{
       $query .= "('" . $id . "','" . trim($friend) . "'),";
}