2015-11-11 2 views
-1

Je suis en train de générer un code QR avec la forme des valeurs mon problème est qu'il nous montre une erreur comme:erreur dans file_get_content() en php

Avertissement: file_get_contents (http://www.test.com/chart?chs=100x100&cht=qr&chl=test1,test2, test3): failed to open stream: La requête HTTP a échoué! HTTP/1.0 400 Bad Request dans le chemin local.

Lorsque j'utilise ce code, il génère un code QR sans données.

Jusqu'à présent, je l'ai fait ceci:

$datas = $_POST['data']; 
$width = $height = 100; 
$url = implode(", ",$datas); 
$qr_img = "<img src=\"http://www.test.com/chart?chs={$width}x{$height}&cht=qr&chl=$url\" />"; 

$filename = "images/qr-code/qr-code.png"; 
$qr = file_get_contents("http://www.test.com/chart?chs={$width}x{$height}&cht=qr&chl=$url"); 
file_put_contents($filename, $qr); 

S'il vous plaît aidez-moi à résoudre ce problème.

+0

"url/graphique ..." est pas une URL valide. –

+0

this.lau_ @ je sais que ce n'est pas une URL valide, je cache mon URL parce que ce post est public.espoir vous comprendre. – user5060801

+0

Pouvez-vous accéder à 'http://www.test.com/chart?chs=100x100&cht=qr&chl=test1,test2, test3' dans votre navigateur? Aussi pourquoi il y a un espace blanc dans votre URL? – Justinas

Répondre

1

Je suppose que cette ligne:

$url = implode(", ",$datas); 

génère une URL non valide. URL passé comme argument à une autre URL doit être encodées-url:

$datas = $_POST['data']; 
$width = $height = 100; 

$url = urlencode(implode(", ",$datas)); // encode invalid chars 

$qr_img = "<img src=\"http://www.test.com/chart?chs={$width}x{$height}&cht=qr&chl=$url\" />"; 

$qr = file_get_contents("http://www.test.com/chart?chs={$width}x{$height}&cht=qr&chl=$url"); 

$filename = "images/qr-code/qr-code.png"; 
file_put_contents($filename, $qr); 

voir aussi here: urlencode in PHP

+0

Axel Amthor @ son travaillé. Merci beaucoup. – user5060801