Как избежать ненужных двойных кавычек (") в fputcsv?
Я собираюсь экспортировать вывод запроса в текстовый файл (не файл CSV) через PHP, используя fputcsv
функции, но когда я открываю текстовый файл, дополнительные двойные кавычки (") добавляются в начале и в конце, а также в середине:
"SET: NEID=35;"
"ADD OPDNAL:ENTR=571,DIGIT=""703901943"",NANNAT=ALL,NAME=""CallingFilter"",RATIO2=0;"
Это результат, который я хочу:
SET: NEID=35;
ADD OPDNAL:ENTR=571,DIGIT="703901943",NANNAT=ALL,NAME="Calling Filter",RATIO2=0;
Мой код, как показано ниже:
$sql="select 'SET: NEID=35;' as ACC_OFFNET from dual
union all
SELECT ACC_OFFNET FROM JLD_ADD WHERE ACC_OFFNET NOT IN (SELECT ACC_OFFNET FROM JLD_ADD_BK)
union all
select 'syn' as ACC_OFFNET from dual";
$result = odbc_exec($connect_raidprd, $sql) or die("Couldn't execute query! ".odbc_errormsg());
$date=date('Y-m-d H:ia',time());
$update = str_replace(':','-',$date);
$filenameJLD = "JLD-ADD-". $update.".csv";
$handle = fopen($filenameJLD, 'w+');
while ($row =odbc_fetch_array($result)) {
fputcsv($handle,array($row['ACC_OFFNET']));
}
// Finish writing the file
fclose($handle);
odbc_close($connect_raidprd);
В качестве альтернативы возможно ли fwrite
принять массив в качестве аргумента?
1 ответ
Я думаю, это то, что вы ищете. Это даст вам чистый вывод Oracle SQL. Сначала проверьте это в Oracle SQL, просто скопируйте, вставьте и запустите. Затем добавьте это в ваш PHP и включите его в "при необходимости". Я не в PHP, не уверен, как он там работает:
SELECT 'select ''SET: NEID=35;'' as ACC_OFFNET from dual
union all
SELECT ACC_OFFNET FROM JLD_ADD WHERE ACC_OFFNET NOT IN (SELECT ACC_OFFNET FROM JLD_ADD_BK)
union all
select ''syn'' as ACC_OFFNET from dual;'
FROM dual
/
Вывод - этот запрос будет выполняться в Oracle Sql и не будет добавлять двойные кавычки:
select 'SET: NEID=35;' as ACC_OFFNET from dual
union all
SELECT ACC_OFFNET FROM JLD_ADD WHERE ACC_OFFNET NOT IN (SELECT ACC_OFFNET FROM JLD_ADD_BK)
union all
select 'syn' as ACC_OFFNET from dual;