【发布时间】:2022-01-17 13:52:39
【问题描述】:
我正在尝试创建一个 http_build_query 数组,但它插入了一些不同的字符,这是我的代码:
function Conectar(){
try{
$opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8');
$con = new PDO("mysql:host=localhost; dbname=*****;", "*****", "*****", $opcoes);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $con;
} catch (Exception $e){
echo 'Erro: '.$e->getMessage();
return null;
}
}
$pdo = Conectar();
$sql = "
SELECT dominio
FROM dominios_extraidos
WHERE verificado='0' LIMIT 3
";
$stm = $pdo->prepare($sql);
$stm->execute();
while ($rows = $stm->fetch()) {
$query = http_build_query(array(
'domains' => array(
''.$rows['dominio'].'',
)
));
print_r($query);
}
创建此输出:
domains%5B0%5D=0002021web.com.br%0Adomains%5B0%5D=007import.com.br%0Adomains%5B0%5D=00pet.com.br%0A
但这是我想要的输出:
domains%5B0%5D=0002021web.com.br&domains%5B1%5D=007import.com.br&domains%5B2%5D=00pet.com.br
可以使用此代码手动生成我想要的输出:
$query = http_build_query(array(
'domains' => array(
'0002021web.com.br',
'007import.com.br',
'00pet.com.br',
)
));
print_r($query);
感谢您的宝贵时间:)
【问题讨论】:
-
您每次都在覆盖查询。首先建立你的数组,然后使用 http_build_query
-
为什么有
''.?%0A是一个 URL 编码的新行,可能来自那些附加的虚无。 -
嗨@user3783243 感谢您抽出宝贵时间,您的意思是这部分:''.$rows['dominio'].''?
-
您好@aynber,感谢您抽出宝贵时间,对,我必须继续在 foreach 中打印 http_build_query 吗?
-
不,不要在 foreach 中打印 http_build_query。在尝试构建查询之前构建整个数组