使用 CSV 文件进行字符转换


character convertion with CSV file

每当使用 PHP 导出 CSV 文件时,我都遇到了问题。我有一个像 MYSQL 查询

SELECT `interest_id`,`interest_name`,`interested_user_id` FROM `interest_list` WHERE `interest_name` LIKE '%fashion%'

但是每当我尝试使用上述MySQL查询导出一个PHP文件时,我的查询就会转向

SELECT `interest_id`,`interest_name`,`interested_user_id` FROM `interest_list` WHERE `interest_name` LIKE 'úshion%'

因此,它不返回任何记录。请告诉我如何解决问题。在导出文件中,我编写了如下代码:

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
//executed code
fputcsv($output, $blankArray);

现在请帮助我。

实际上,我在一个文件中进行查询,如下所示:

$search_sql = "SELECT `interest_id`,`interest_name`,`interested_user_id` FROM `interest_list`";
    if(isset($_REQUEST['search_user_btn'])){
        if($_REQUEST['search_intr'] != '')
$search_sql .= " WHERE `interest_name` LIKE '%".$_REQUEST['search_intr']."%' ";
    }                                                                                

然后在同一个文件中,我这样写:

<a href="export.php?report=interest&qur=<?php echo $search_sql; ?>"><button>Export to CSV</button></a>

最后在出口中.php

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');

我试图获得 $_REQUEST['qur'] 的价值。但无法获得_REQUEST['古兰德']的原始价值。

我认为现在这是有道理的。请帮忙....

不能在 URL 中插入随机字符串,因为 URL 中有一些字符具有特殊含义。在 PHP 中,您可以使用 rawurlencode() 对 URL 参数的值进行编码。同样,出于同样的原因,您不能在 HTML 字符串中插入随机字符。

<?php
$url = 'export.php?report=interest&qur=' = rawurlencode($search_sql);
?>
<a href="<?=htmlspecialchars($url)?>"><button>Export to CSV</button></a>

无论如何,在URL中传递SQL都是被黑客入侵的调用。