PDA

View Full Version : عمل نکردن تابع file_get_contents() در بعضی از سی پنل ها



darkcms
چهارشنبه 12 تیر 1392, 19:06 عصر
با سلام!
یه سوال داشتم در مورد بعضی از تابع ها!
چرا تابع file_get_contents() در بعضی از سی پنل ها یا به عبارت دیگر در بعضی از هاست ها اجرا نمیشود؟

Tarragon
چهارشنبه 12 تیر 1392, 20:14 عصر
سلام
چون پشتیبانی شما allow_url_open رو بستن (واسه امنیت).
بهترین کار اینه که از کارل استفاده کنید.

colors
چهارشنبه 12 تیر 1392, 20:44 عصر
با سلام!
یه سوال داشتم در مورد بعضی از تابع ها!
چرا تابع file_get_contents() در بعضی از سی پنل ها یا به عبارت دیگر در بعضی از هاست ها اجرا نمیشود؟

بعضی از سرویس دهنده ها به خاطر مسائلی, بعضی از توابع موجود رو میبندن. در صورتی که بهش نیاز دارید, از سرویس دهنده درخواست کنید براتون فعال میکنن.

darkcms
چهارشنبه 12 تیر 1392, 21:16 عصر
سلام
چون پشتیبانی شما allow_url_open رو بستن (واسه امنیت).
بهترین کار اینه که از کارل استفاده کنید.
میشه بگید منظور شما از کارل چیه؟

a_ahmadi
چهارشنبه 12 تیر 1392, 22:15 عصر
میشه بگید منظور شما از کارل چیه؟

منظورش اینه با تابع Curl عملکردش با file_get_contents یکی هست کار کنید.

darkcms
پنج شنبه 13 تیر 1392, 08:39 صبح
منظورش اینه با تابع Curl عملکردش با file_get_contents یکی هست کار کنید.
با سلام.
میشه یه مثال بزنید؟ خیلی احتیاج دارم!
با تشکر.:قلب:

MMSHFE
پنج شنبه 13 تیر 1392, 09:26 صبح
ساده ترین حالت:


$ch = curl_init('http://www.google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo '<pre>' . htmlentities($result) . '</pre>' . PHP_EOL;

ضمناً تلفش صحیحش سی یو آر اِل هست (مخفف چهار کلمه Client URL Request Library).

mahmod2000
پنج شنبه 13 تیر 1392, 11:07 صبح
سلام جناب شهرکی عزیز
من کدی را که دادید امتحان کردم
از یک صفحه ای که میخوام اطلاعات بگیرم تا یه حدی تگ های html رو دریافت میکنه
مثال : این کدی هست که زدم


$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$var = htmlentities($result);

@$dochtml = new DOMDocument();
@$dochtml->loadHTML($var);


این کد میاد فقط تا این بخش رو واسم اطلاعات رو میگیره :


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <meta name="alexaVerifyID" content="dxLTSMgnqydVn-SN1KogtCUTGMo" /> <link rel="shortcut icon" href="/client/themes/fa/main/img/favicon.ico"> <link rel="alternate" type="application/rss+xml" title="RSS FEED" href="/fa/rss/allnews"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/styles_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/links_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/content_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/form_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/comments_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/album_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/lib.ticker_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/lib.cycle_10910.css"> <link rel="stylesheet" type="text/css" href="/client/themes/fa/main/css/weather_10910.css"> <script type="text/javascript" src="/client/themes/fa/main/js/lib_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/lib.fade_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/lib.ticker_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/swfobject_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/lib.cookie_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/lib.autoresize_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/lib.iransamaneh_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/album_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/weather_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/sport_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/scripts_10910.js"></script> <script type="text/javascript" src="/client/themes/fa/main/js/sport_10910.js"></script> <title>Ù


میدونید مشکل چیه؟

MMSHFE
پنج شنبه 13 تیر 1392, 11:44 صبح
وقتی میخواین به DOMDocument کد بدین که براتون پردازش کنه که دیگه نباید قبلش Escape کنید. اینطوری اصلاً کد HTML ندارین که. همش یکسری متن معمولیه یعنی علامتهای تگها (< و > و...) Escape شدن.

mahmod2000
پنج شنبه 13 تیر 1392, 12:13 عصر
وقتی که Escape نمیکنم این پیغام خطا رو میده :


DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity, line: 1

MMSHFE
پنج شنبه 13 تیر 1392, 12:17 عصر
بهتره از کلاس SimpleHTMLDOM استفاده کنید.

mahmod2000
پنج شنبه 13 تیر 1392, 12:58 عصر
جناب شهرکی عزیز مشکلی که با این کلاسی که فرمودید دارم اینه که وقتی با curl محتوا را میگیرم نمیدونم چجوری میتونم تگ هاشو با کلاس SimpleHTMLDOM دریافت کنم
چون من با این کلاس SimpleHTMLDOM زمانی که مستقیم از خود url تگ میگیرم مشکل ندارم

میشه یک نمونه که با curl محتوا را میگیریم و با استفاده از کلاس SimpleHTMLDOM تگ مورد نظر رو دریافت میکنیم بگید به ما
ممنون میشم

MMSHFE
پنج شنبه 13 تیر 1392, 13:15 عصر
با استفاده از تابع str_get_html کد HTML رو بهش بدین. بقیه کارها مثل وقتی هست که مستقیماً خروجی رو از URL بگیرین. مثال:


require_once simple_html_dom.php';

$url = 'http://www.google.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$dom = str_get_html($result);

foreach ($dom->find('div') as $obj) {
$c = $obj->plaintext;
echo $c . '<br />' . PHP_EOL;
}

ayub_coder
پنج شنبه 13 تیر 1392, 20:08 عصر
ضمناً تلفش صحیحش سی یو آر اِل هست

با سلام
جناب آقای شهرکی خدای نکرده نمیخوام جسارت کرده باشم ولی فکر کنم همون کرل درست تره.
چون توی علم رایانه تا جایی که امکان داره این جور مخفف ها رو به صورت یکسره تلفظ می کنن. مثل
GNU-گنو
GUI-گویی
DOM-دام
LAN-لن
WAN-ون
AJAX-ایجکس
CAD-کد
و...

عذرخواهی من رو بپذیرید :لبخندساده:

MMSHFE
جمعه 14 تیر 1392, 07:11 صبح
نه دوست عزیز، این اصطلاحات توی علم رایانه که هیچ، توی هیچ حیطه ای نباید خلاصه تلفظ بشه و اشتباهه. حالا ممکنه یک اشتباه رایج باشه ولی بهرحال اشتباهه. مثل CIA که سیا میخونیم. اگه بخوایم اینطوری کار کنیم، لابد USA رو هم باید یوسا یا اوسا بخونیم. یا مثلاً به ASP هم بگیم اسپ یا بجای USB هم بگیم اوسب. حالا برخی از این موارد رو که دیگه خیلی رایج شده (مثل AJAX یا CAD و...) میشه بگیم دیگه عمومی شده ولی CURL هنوز توی جوامع تخصصی برنامه نویسی «سی یو آر اِل» تلفظ میشه و بهتره ما هم با تلفظ صحیح، نگذاریم تلفظ اشتباهش رایج بشه.

ayub_coder
جمعه 14 تیر 1392, 13:07 عصر
اینایی که گفتم رو از منابع انگلیسی شنیدم.
توی ویدئوی های آموزشی بسیاری که دیدم و تماما به زبان انگلیسی بودن توی هیچ کدام ندیدم که بگن سی یو آر ال. 100% اونها کرل تلفظ می کردن. در هر صورت شاید بنده اشتباه می کنم یا اونها... :لبخندساده:

http://www.youtube.com/watch?v=U0WegAvxQgk
http://www.youtube.com/watch?v=M2HLGZJi0Hk
http://www.youtube.com/watch?v=PvEJz6du7R0
http://www.youtube.com/watch?v=M2HLGZJi0Hk
http://www.youtube.com/watch?v=a7PkS02DRe0

MMSHFE
جمعه 14 تیر 1392, 21:49 عصر
این لینک رو ببینید:
http://en.wikipedia.org/wiki/CURL
اون قسمت که نوشته 'pronounced 'see URL رو بهش دقت کنید. اینکه چندتا فیلم زبان اصلی هم اینطور تلفظ کنن هم باعث نمیشه بگیم تلفظشون صحیحه. مثلاً چندین فیلم آموزشی دیدم که MySQL رو «مای سیکوئل» میخونن. آیا باید نتیجه بگیریم درسته و تلفظش همینه؟

ayub_coder
جمعه 14 تیر 1392, 22:51 عصر
آیا متخصص شرکت مایکروسافت که SQLServer درس میده و و جزء ویدئو های رسمی این شرکت این رو سیکوئل سرور تلفظ می کنه و تو آموزشش هم تاکید می کنه که تلفظ صحیحش سیکوئل سروره و نباید بگین اس کیو ال سرور به نظر شما داره غلط تلفظ می کنه؟ یعنی داره به ما آموزش تلفظ غلط میده؟ فکر نمی کنم. درسته بعضی از واژه ها رو نمیشه سر هم بیان کرد و بعضی واژه ها واقعا تلفظشون با اون چیزی که هست متفاوته. حداقل سازنده هاش اینطور میگن. :لبخندساده:



The fact that it can also be pronounced 'see URL' also helped

اگه به این متن دقت کرده باشید گفته که میشه به صورت سی یو آر ال هم تلفظ کرد. "نگفته تلفظش اینه" . و این می تونه در درک بهتر کمک کنه!

MMSHFE
جمعه 14 تیر 1392, 23:17 عصر
ببینید، بهرحال تلفظ این کلمه، کاربردش رو تغییر نمیده و من هم وقت و حوصله بحث کردن سر این مسائل جزئی رو ندارم ولی باید دقت کنید که زبان SQL (تلفظ صحیح «اس کیو ال» طبق لغتنامه مرجع Oxford) در ابتدا Structured English Query Language (مخفف شده بصورت SEQUEL با تلفظ سیکوئل) بوده (مرجع 1 (http://patorjk.com/blog/2012/01/26/pronouncing-sql-s-q-l-or-sequel/) - مرجع 2 (http://english.stackexchange.com/questions/7231/how-is-sql-pronounced) - مرجع 3 (http://en.wikipedia.org/wiki/SQL)) و کاربران قدیمی اون، هنوز هم عادت دارن اون رو به همون شکل سنتی صدا بزنن. نکته اصلی اینه که بطور کلی حتی بیان اشتباه یک کلمه توسط یکی از کارمندان مایکروسافت (که محصولاتشون پر از باگه، چه برسه به تلفظهاشون)، باعث نمیشه اون تلفظ رو رسمی به حساب بیاریم. ضمن اینکه باید این نکته رو هم فراموش نکنیم که SQL ابداع مایکروسافت نیست. پس ویدئوهای رسمی مایکروسافت هم سندیتی در نحوه تلفظ اسم این زبان ایجاد نمیکنه.

ayub_coder
شنبه 15 تیر 1392, 00:28 صبح
بنده هم خدای نکرده قصد جسارت ندارم و نمی خوام الکی کش بدم. خواستم برای خودم روشن شه. درسته با تلفظ کاربرد کلمه تغییر نمیکنه. ولی از حرفهای شما استاد محترم هم قانع نشدم :لبخندساده:
چون واژگان بیشماری هست که به صورتی که دیده میشن تلفظ نمیشن. مثل GNU که فکر کنم شما این رو G-N-U تلفظ میکنید. در صورتی که ریچارد استالمن این رو به صورت گنو تلفظ میکنن. شاید هم آقای استالمن اشتباه می کنن. :چشمک:
و مطمئن هستم شما هم با حرفهای من قانع نخواهید شد. چون هرکسی روش خاص خودش رو داره. ولی درست هم نبود به خاطر تلفظ یک واژه نرم افزار و شرکت عظیمی مثل مایکروسافت هم زیر سوال ببرید.(در این مورد فکر کنم حق با اونها هست چون به گفته ی خودشون سیکوئل سرور ربطی به SQL - Structured English Query Language نداره و فقط یه تشابه اسمی هست- البته اینو یکی از متخصصان SQLServer گفته و حرف من نیست).
در هر صورت بنده به همه ی متخصصان احترام قائلم. چه اونی که تو مایکروسافت نشسته و SQLServer رو نوشته.چه ریچارد استالمن که پروژه گنو رو شروع کرده. چه شما استاد شهرکی عزیز :لبخندساده:

بقیه دوستان هم با توجه به مدارک و ریسورس های دیگه راه خودشون رو پیدا خواهند کرد.
در هر صورت جسارت بنده رو ببخشید.بنده کوچیک شمام هستم.بسیار سپاسگذارم. موفق و موید باشید

MMSHFE
شنبه 15 تیر 1392, 08:10 صبح
بله من GNU رو G-N-U تلفظ میکنم چون جدا از اینکه یک کلمه مخفف هست و طبق دستور صریح Oxford باید بصورت حروف جدا جدا تلفظ بشه، خودم اینطوری راحتترم. اما درمورد تلفظ SEQUEL Server و SQL Server باید بگم که تلفظ اول کاملاً اشتباهه. حتی اگه توسط یک کارشناس مایکروسافت گفته بشه چون تلفظ اول داره کلاً به نسل قبلی SQL اشاره میکنه و اینجا تلفظ اشتباه، معنای دیگری پیدا میکنه. مثلاً اگه چند وقت دیگه اعلام شد که اسم PHP قراره بشه PHPX من دیگه به خودم اجازه نمیدم بگم PHP چون اون اسم دیگه معنای نسخه جدید رو نداره، مگه اینکه صراحتاً بخوام به نسخه های قبلی اشاره کنم. اما اصطلاحاتی مثل GNU و AJAX با تلفظ بصورت «گنو» و «ایجکس» (که خیلیها هنوز آژاکس میخونن)، مشکل خاصی ندارن چون اینطور تلفظ کردن، اشاره به محصول دیگری نداره. درمورد CURL هم من فقط گفتم تلفظ صحیحش (طبق استانداردهای زبان انگلیسی) سی یو آر اِل هست. وقتی تلفظ صحیح یک کلمه باب بشه، خیلی خوبه چون اگه توی یک کنفرانس خارجی، این تلفظ بکار بره، هیچکس نمیخنده ولی اگه اشتباه تلفظ بشه، حتی اگه بین چند نفر رایج باشه که توی اونها، متخصصین حرفه ای هم دیده میشه، باز هم توسط برخی از افراد جامعه متخصصین دستمایه طنز قرار میگیره و این اصلاً خوب نیست. قضیه مخففها توی انگلیسی و قانون تلفظ جداگانه حروف، یه چیزی تو مایه های حروف مقطعه در قرآنه (قصدم مقایسه و پایین آوردن قرآن تا این حد نیست، فقط میخوام قاعده اون رو بگم). مثلاً الم رو باید الف لام میم بخونیم و اگه کسی اَلَم یا چیزی شبیه اون خوند، ممکنه چندین نفر دیگه هم پیدا بشن که اینطوری تلفظ کنن (حتی چندین دبیر عربی که حتی ممکنه چند تاشون، زبان خودشون هم عربی باشه) اما ازنظر قاعده و قانون، قطعاً اشتباهه.
بهرحال تلفظ خیلی مهم نیست (نه اینکه اصلاً مهم نباشه) و مهمتر از اون، آگاهی از نحوه کاربردشه و تا وقتی که قرار نیست جایی درموردش صحبت شفاهی کنیم، اینکه توی ذهن خودمون تلفظ اشتباه رو بکار ببریم هم مشکلی ایجاد نمیکنه اما عادت خوبیه که اگه با قطعیت تلفظ صحیح یک کلمه بیگانه رو نمیدونیم، حداقل توی نوشتار، اون رو به همون صورت زبان اصلی بنویسیم و ترجمه نکنیم. قطعاً شما هم کتابهای ترجمه شده داخلی که پر از اشتباهات تلفظی هست رو دیدین و این مشکل رو احساس کردین.
موفق باشید.

multi-site
شنبه 30 خرداد 1394, 18:11 عصر
ایول بابا متخصصا بابا کار برد این تابع رو بگین تلفط رو بیخیال بحث از کجا به کجا کشید الان کار برد این تابع به تلفظش خیلی ربط داره؟؟؟؟؟؟؟؟؟؟؟؟؟looool:گیج:: یج:

fatima-php
یک شنبه 31 خرداد 1394, 08:43 صبح
تخصص شما هم بالا آوردن تاپیکهای زیرخاکیه؟ تاپیک جدا بزنید لطفاً. کاش یه امکانی بود که تاپیکهایی که از یه تاریخی قدیمیتر میشد رو خودبخود میبست سیستم. فکر میکنم vBulletin داره این قابلیت رو ولی نمیدونم چرا ازش استفاده نکردن.

m.esmaeilzadeh
یک شنبه 31 خرداد 1394, 12:12 عصر
در ابتدا کار یک phpinfo بگیر ببین این تابع روی هاست شما اکتیو هستش یا نه ؟!
در بعضی مواقع یکسری وب سایت ها , مثلا سایت های خبری یا لینک دانلود مثل پی سی دانلود میان ip هاست شما رو بلاک میکنن و نمیتونی با این روش ها متصل بشی !!!!
مثلا اگر قبلا کسی یک وب سایت داشته و اونا رو با برنامه های مختلف اذیت کرده باشه ip سرور شما رو می بندن بعد کسای دیگه ( چون هاست Share هستش ) به ایراد میخورن ....
قبلا برای بحث بولتن های خبری و برنامه های ایندکس کننده به این مشکلات خوردم !!!!
سایت های دولتی بیشتر گیر هستن و حساس ...