Возможно, я смотрю на это неправильно, но у меня есть форма, которая делает свою вещь (отправляет электронные письма и т. Д.), Но я также добавил код, чтобы сделать простой файл csv с плоским файлом с некоторыми из пользователь ввел данные.Закрытие двойных кавычек в массиве
Если пользователь случайно вставил, например, «himynameis», «bob», это либо сломало бы строку csv (поскольку кавычки не были инкапсулированы), либо если я использую htmlspecialchars() и stripslashes() для данных, В итоге я получил уродливое значение данных 'himynameis","bob'
.
Мой вопрос, как я могу обрабатывать входящие данные для удовлетворения «"»быть представлена в виде, не нарушая мой файл CSV?
это мой код для создания файла журнала в формате CSV.
@$name = htmlspecialchars(trim($_POST['name']));
@$emailCheck = htmlspecialchars(trim($_POST['email']));
@$title = htmlspecialchars(trim($_POST['title']));
@$phone = htmlspecialchars(trim($_POST['phone']));
function logFile($logText)
{
$path = 'D:\logs';
$filename = '\Log-' . date('Ym', time()) . '.csv';
$file = $path . $filename;
if(!file_exists($file))
{
$logHeader = array('Date', 'IP_Address', 'Title', 'Name', 'Customer_Email', 'Customer_Phone', 'file');
$fp = fopen($file, 'a');
fputcsv($fp, $line);
}
$fp = fopen($file, 'a');
foreach ($logText as $record) {
fputcsv($fp, $record);
}
}
//Log submission to file
$date = date("Y/m/d H:i:s");
$clientIp = getIpAddress(); //get clients IP address
$nameLog = stripslashes($name);
$titleLog = stripslashes($title);
if($_FILES['uploadedfile']['error'] == 4) $filename = "No file attached."; //check if file uploaded and return
$logText = array(array("$date", "$clientIp", "$titleLog", "$nameLog", "$emailCheck", "$phone", "$filename"));
logFile($logText); //write form details to log
Вот пример входящего массива данных:
Array
(
[0] => Array
(
[0] => 2010/05/17 10:22:27
[1] => xxx.xxx.xxx.xxx
[2] => title
[3] => """"himynameis","bob"
[4] => [email protected]
[5] => 346346
[6] => No file attached.
)
)
ТВВ
Jared
да, если я инкапсулировать двойные кавычки с более doublequotes, CSV-отлично (я знаю, что) я спрашиваю, как я могу это сделать. Я думаю, может быть, preg_replace, или есть другой способ? – Jared
легенда мат, ура! – Jared