2016-03-30 9 views
3

Ich bin ein Neuling und ich habe eine URL, die persische Zeichen enthält.Http 400 schlechte Anfrage - Php file_get_contents in Persisch URL

Zum Beispiel dieses:

http://tabnak.ir/fa/news/577155/ویدیوی-درگیری-نیروهای-سیا-و-پنتاگون-در-سوریه-با-همدیگر-ویدیوهایی-از-جنجال-پاسخ-مشایخی-به-مجیدی-و-حرف‌های-عجیب-الویس-پریسلی-ایران 

Wenn ich die HTML-Quelle der URL, mit dieser Codezeile erhalten mag:

$source = file_get_contents($url); 

ich diesen Fehler:

Warning: file_get_contents(http://tabnak.ir/fa/news/577155/ویدیوی-درگیری-نیروهای-سیا-و-پنتاگون-در-سوریه-با-همدیگر-ویدیوهایی-از-جنجال-پاسخ-مشایخی-به-مجیدی-و-حرف‌های-عجیب-الویس-پریسلی-ایران): 
failed to open stream: HTTP request failed! HTTP/1.0 400 Bad request in C:\wamp\www\file.php on line 25 

Ich wollte dieses Problem mit dem urlencode lösen, aber es hat nicht funktioniert.

Der urlencode Ausgang dieser Linie wird:

http%3A%2F%2Ftabnak.ir%2Ffa%2Fnews%2F577155%2F%D9%88%DB%8C%D8%AF%DB%8C%D9%88%DB%8C-%D8%AF%D8%B1%DA%AF%DB%8C%D8%B1%DB%8C-%D9%86%DB%8C%D8%B1%D9%88%D9%87%D8%A7%DB%8C-%D8%B3%DB%8C%D8%A7-%D9%88-%D9%BE%D9%86%D8%AA%D8%A7%DA%AF%D9%88%D9%86-%D8%AF%D8%B1-%D8%B3%D9%88%D8%B1%DB%8C%D9%87-%D8%A8%D8%A7-%D9%87%D9%85%D8%AF%DB%8C%DA%AF%D8%B1-%D9%88%DB%8C%D8%AF%DB%8C%D9%88%D9%87%D8%A7%DB%8C%DB%8C-%D8%A7%D8%B2-%D8%AC%D9%86%D8%AC%D8%A7%D9%84-%D9%BE%D8%A7%D8%B3%D8%AE-%D9%85%D8%B4%D8%A7%DB%8C%D8%AE%DB%8C-%D8%A8%D9%87-%D9%85%D8%AC%DB%8C%D8%AF%DB%8C-%D9%88-%D8%AD%D8%B1%D9%81%E2%80%8C%D9%87%D8%A7%DB%8C-%D8%B9%D8%AC%DB%8C%D8%A8-%D8%A7%D9%84%D9%88%DB%8C%D8%B3-%D9%BE%D8%B1%DB%8C%D8%B3%D9%84%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86 

, die keine korrekte URL-Adresse ist, und ich kann nicht wieder Inhalt bekommen.

Was soll ich tun?

Antwort

1

Können Sie das versuchen? Auf diese Weise sollten Sie in der Lage sein, die file_get_contents auf dem codierten URL

$url = 'http://tabnak.ir/fa/news/577155/ویدیوی-درگیری-نیروهای-سیا-و-پنتاگون-در-سوریه-با-همدیگر-ویدیوهایی-از-جنجال-پاسخ-مشایخی-به-مجیدی-و-حرف‌های-عجیب-الویس-پریسلی-ایران'; 
$url = mb_convert_encoding($url, 'HTML-ENTITIES', "UTF-8"); 
$source = file_get_contents($url); 

EDIT zu tun (DIES UND WERKE getestet):

die Sie interessieren, vielleicht durch den Teil der URL-Codierung, wo es arabische Zeichen könnte es funktionieren:

$link = 'http://tabnak.ir/fa/news/577155/ویدیوی-درگیری-نیروهای-سیا-و-پنتاگون-در-سوریه-با-همدیگر-ویدیوهایی-از-جنجال-پاسخ-مشایخی-به-مجیدی-و-حرف‌های-عجیب-الویس-پریسلی-ایران'; 
$exploded = explode('/',$link); 
$exploded[6] = urlencode($exploded[6]); 
$urlimplode = implode($exploded,'/'); 
$source = file_get_contents($urlimplode); 
echo $source; 
+0

** Nein **, es hat nicht funktioniert. Fehler: 'Warning: file_get_contents (http://tabnak.ir/fa/news/577155/ & # 1608; & # 1740; & # 1583; & # 1740; & # 1608; & # 1740; - & # 1583; & # 1585; & # 1711; & # 1740; & # 1585; & # 1740; - & # 1606; & # 1740; & # 1585; & # 1608; & # 1607; & # 1575; & # 1740; - & # 1587; & # 1740; & # 1575; - & # 1608; - & # 1662; & # 1606; & # 1578; & # 1575; & # 1711; & # 16p; # 1583; & # 1740; - & # 1608; - & # 1581; & # 1585; & # 1601; & zwnj; & # 1607; & # 1575; & # 1740; - & # 1593 in C: \ wamp \ www \ file.php in Zeile 26' – dodojoe

+1

@dodojoe Ich habe meine Antwort bearbeitet und auf meinem lokalen Server getestet, und es funktioniert einwandfrei. :) Sie müssen nur den Teil mit den arabischen Zeichen eingeben. – SamyQc

+0

Danke Schatz, es hat wirklich geholfen ♥♥♥ – dodojoe

Verwandte Themen