我得到了这个代码:
.docx
erina
,natasha culler
,danial joshstone
)以下代码运行良好。但插入名称后,数据库将变为如下所示:
如果您看到名字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);
}
?>
如何解决这个问题?
答案 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) . "'),";
}