PDA

View Full Version : سوال: ارور به دلیل تغییر & به & در توابع



hasanak852
سه شنبه 15 مرداد 1392, 22:01 عصر
سلام
موقعی که به تابع file_get_contents یه آدرس وب رو میدم ارور زیر میاد:


$types_url='page.php?group=mb&dflt=ddr3&act=load-types';
$types=file_get_contents($types_url);
//Warning: file_get_contents(page.php?group=mb&dflt=ddr3& amp;act=load-types): failed to open stream: No error...
:متفکر:
کسی تا حالا به این مشکل برخورده؟ انگار توی همه توابع فایل پی اچ پی همین مشکل هست
میگن این توابع به صورت خودکار & رو به & تبدیل میکنن و بعد دوباره برمیگردونن، ولی ظاهرا وقتی توی url بیشتر از دوبار کاراکتر & باشه همچین مشکلی پیش میاد

MMSHFE
چهارشنبه 16 مرداد 1392, 01:13 صبح
برای صفحات داینامیک و صفحاتی که پارامتر براشون ارسال میشه (چه بصورت Get و چه بصورت Post) بهتره از cURL استفاده کنید.

hasanak852
شنبه 02 شهریور 1392, 21:21 عصر
اونو که میدونم
ولی مشکل این چیه؟
انگار یک باگ پی اچ پی نیست
ولی راه حلی براش نیافتم

AliRezaPro
شنبه 02 شهریور 1392, 22:01 عصر
در این خط

$types_url='page.php?group=mb&dflt=ddr3&act=load-types';

کوتیشن را با دایل کوتیشن عوض کنید , نتیجه رو ببینید
نهایتا اگر مشکلی باشد باید url را انکود کنید
تابع file_get_contents تا جایی که بنده میدونم رو بیشتر هاست ها بسته است بنابراین بنده هم curl پیشنهاد میکنم


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "page.php?group=mb&dflt=ddr3&act=load-types");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);

a.gh.n
یک شنبه 03 شهریور 1392, 00:37 صبح
تابع فقط برای گزارش خطا کاراکتر & را تبدیل کرده.

failed to open stream:
تابع سعی می‌کند فایلی با نام $type_url را بخواند، که وجود ندارد. باید آدرس کامل URL را بدهید (http://example.com/$types_url) تا متوجه شود شما درخواست http دارید نه خواندن فایل.

Tarragon
یک شنبه 03 شهریور 1392, 07:36 صبح
شما اجازه دسترسی همون فایل رو به 777 تغییر بدید درست می شه.

hasanak852
پنج شنبه 21 شهریور 1392, 17:42 عصر
در این خط

$types_url='page.php?group=mb&dflt=ddr3&act=load-types';

کوتیشن را با دایل کوتیشن عوض کنید , نتیجه رو ببینید
نهایتا اگر مشکلی باشد باید url را انکود کنید

نه داداش، درست نشد! با انکود هم درست نمیشه


شما اجازه دسترسی همون فایل رو به 777 تغییر بدید درست می شه.
نه داداش، درست نمیشه!

تابع فقط برای گزارش خطا کاراکتر & را تبدیل کرده.

تابع سعی می‌کند فایلی با نام $type_url را بخواند، که وجود ندارد. باید آدرس کامل URL را بدهید (http://example.com/$types_url) تا متوجه شود شما درخواست http دارید نه خواندن فایل.
آره همینه، ظاهرا چون فکر میکنه آدرس فایله آدرسو انکودش میکنه و & رو به ;amp& تبدیل میکنه
باید آدرس کامل بدیم تا کار کنه
ممنون از راهنمایی همه دوستان