【发布时间】:2017-08-03 07:35:20
【问题描述】:
我创建了一个 PHP 脚本,允许我从 csv 文件上传一个巨大的数据文件。导入时,我想将 � 等特殊字符替换为字母 c。以下是我的代码:
$sql ="INSERT INTO bill_of_materials(allotment_code, category_name, activity, quantity, end_unit_quantity, unit, description,
unit_cost, regular_labor_cost, end_unit_labor_cost, type, batch) VALUES";
while (($line = fgets($handle)) !== false) {
$sql .= "('".implode("', '", explode(";", sanitize($line)))."'),";
$counter++;
}
$sql = substr($sql, 0, strlen($sql) - 1);
if (mysqli_query($new_conn, $sql) === TRUE) {
echo 1;
//database file name
$new_database_file = $new_database.'.sql';
if(file_exists('backup/'.$new_database_file)) {
unlink('backup/'.$new_database_file);
// backup main database
$command = "C:/xampp/mysql/bin/mysqldump --host=$host --user=$user --password=$pass $database_name > backup/$new_database_file";
system($command);
} else {
// backup main database
$command = "C:/xampp/mysql/bin/mysqldump --host=$host --user=$user --password=$pass $database_name > backup/$new_database_file";
system($command);
}
} else {
echo $sql;
}
此外,我的 CSV 中有一个数据是 W2-A1 2/F Front Fa�ade - B,我希望看到类似 W2-A1 的输出2/F 正面 - B。我该怎么做?
【问题讨论】:
-
我猜你在找
str_replace()? Link to the docs。希望这会有所帮助! -
你应该寻找
REGEX -
看起来是编码问题,请确保您与 mysql 的连接设置为 UTF-8
-
你不想替换那些“特殊字符”,你想尝试正确处理编码。那些“特殊字符”出现在你没有正确处理编码。解决方案不是简单地摆脱它们。
标签: php csv str-replace