PDA

View Full Version : مشکل عدم خواندن سایت مپ با استفاده از تابع simplexml_load_file یا ...



tam2145
پنج شنبه 08 اسفند 1392, 10:51 صبح
سلام بر همه دوستان
من به تازگی دارم زبان PHP را یاد می گیرم .
حالا با استفاده simplexml_load_file یا file_get_contents اطلاعات سایت مپ خودم را بخوانم ، سایت مپ من به آدرس : http://www.rozveb.ir/sitemap/post.xml هست .
اسکریپت فراخوانی رو برای هر دو روش نوشتم و توی هاست های رایگان امتحان کردم و کار کرد . الان یه هاست پولی گرفتم ولی اسکریپتم جواب نمیده و اروز زیر را می دهد .


Warning: simplexml_load_file(): http://www.rozveb.ir/sitemap/post.xml:1: parser error : Document is empty in /home/abzarroz/public_html/rozveb.php on line 2

Warning: simplexml_load_file(): in /home/abzarroz/public_html/rozveb.php on line 2

Warning: simplexml_load_file(): ^ in /home/abzarroz/public_html/rozveb.php on line 2

Warning: simplexml_load_file(): http://www.rozveb.ir/sitemap/post.xml:1: parser error : Start tag expected, '<' not found in /home/abzarroz/public_html/rozveb.php on line 2

Warning: simplexml_load_file(): in /home/abzarroz/public_html/rozveb.php on line 2

Warning: simplexml_load_file(): ^ in /home/abzarroz/public_html/rozveb.php on line 2

اسکریپتی هم که نوشتم اینه :


<?php
$xml = simplexml_load_file('http://www.rozveb.ir/sitemap/post.xml');
$post=isset($xml->url[0]->loc[0])?$xml->url[0]->loc[0]:1;
if($post!=1){
$post =str_replace("http://","",$post);
$apost = explode('/',$post);
echo $apost[2]."<br>";
}
?>

abolfazl-z
پنج شنبه 08 اسفند 1392, 11:18 صبح
سلام بر همه دوستان
من به تازگی دارم زبان PHP را یاد می گیرم .
حالا با استفاده simplexml_load_file یا file_get_contents اطلاعات سایت مپ خودم را بخوانم ، سایت مپ من به آدرس : http://www.rozveb.ir/sitemap/post.xml هست .
اسکریپت فراخوانی رو برای هر دو روش نوشتم و توی هاست های رایگان امتحان کردم و کار کرد . الان یه هاست پولی گرفتم ولی اسکریپتم جواب نمیده و اروز زیر را می دهد .


اسکریپتی هم که نوشتم اینه :


<?php
$xml = simplexml_load_file('http://www.rozveb.ir/sitemap/post.xml');
$post=isset($xml->url[0]->loc[0])?$xml->url[0]->loc[0]:1;
if($post!=1){
$post =str_replace("http://","",$post);
$apost = explode('/',$post);
echo $apost[2]."<br>";
}
?>

فایل xml رو با توابع خودش فراخوانی نکن. با تابع file_get_contents فراخوانی کن بعد ببین اگر فایل دریافتی خالی نبود پردازش های خودتون را انجام بدهید.(simplexml_load_string)

tam2145
پنج شنبه 08 اسفند 1392, 12:48 عصر
فایل دریافتی خالیه ... الان باید چیکار بکنم ... ؟؟

abolfazl-z
پنج شنبه 08 اسفند 1392, 13:34 عصر
فایل دریافتی خالیه ... الان باید چیکار بکنم ... ؟؟

خوب پس آدرس اشتباه است !

tam2145
پنج شنبه 08 اسفند 1392, 17:55 عصر
<?php
$html = file_get_contents('http://www.rozveb.ir/sitemap/post.xml');
echo $html;
?>

کد من مثل بالاست ولی کار نمی کنه .... البته توی هاست جدیدی که خریدم ، کار نمیده ولی توی هاست های رایگان که می زنم و اجرا می کنم ، کار میده ... یعنی احتمال داره که مشکل از هاست باشه ؟؟ :متفکر:

abolfazl-z
پنج شنبه 08 اسفند 1392, 19:34 عصر
<?php
$html = file_get_contents('http://www.rozveb.ir/sitemap/post.xml');
echo $html;
?>

کد من مثل بالاست ولی کار نمی کنه .... البته توی هاست جدیدی که خریدم ، کار نمیده ولی توی هاست های رایگان که می زنم و اجرا می کنم ، کار میده ... یعنی احتمال داره که مشکل از هاست باشه ؟؟ :متفکر:

احتمال داره از هاست باشه.

شما از همین طریق صفحه گوگل رو هم دانلود کن و همچنین یک صفحه از سایت خودتون، ببینید دانلود میشه ؟

tam2145
جمعه 09 اسفند 1392, 09:40 صبح
گوگل را باز می کنه و می خونه .... ولی سایت خودم رو نه ... الان باید چیکار کنم ؟؟ مرسی که کمک می کنید .

abolfazl-z
جمعه 09 اسفند 1392, 12:01 عصر
گوگل را باز می کنه و می خونه .... ولی سایت خودم رو نه ... الان باید چیکار کنم ؟؟ مرسی که کمک می کنید . فکر کنم این مربوط میشه به تنظیمات فایروال هاستتون که باید به پشتیبانیتون تیکت بزنید.

abolfazl-z
جمعه 09 اسفند 1392, 12:08 عصر
یک امتحان دیگر هم انجام دهید.

از 127.0.0.1 هم استفاده کنید ببینید جواب می دهد.

tam2145
جمعه 09 اسفند 1392, 22:02 عصر
Warning: file_get_contents(127.0.0.1): failed to open stream: No such file or directory in /home/abzarroz/public_html/rozveb.php on line 2

ارور بالا رو داد .... یعنی مربوط میشه به تنظیمات فایروال هاستم ؟؟؟

keyhan.taktaz
جمعه 09 اسفند 1392, 22:22 عصر
مسیر فایلت اشتباهه.این ارور میگه فولدی یافت نشد

abolfazl-z
جمعه 09 اسفند 1392, 23:29 عصر
گوگل را باز می کنه و می خونه .... ولی سایت خودم رو نه ... الان باید چیکار کنم ؟؟ مرسی که کمک می کنید .

میگم شما مطمئن هستید که یک صفحه استاتیک رو تست کردید ؟

مثلا :

http://example.com/static.html

ببینید دریافت میکنه چون ممکن هست به اون صفحه داینامیکی که وصل میشوید دارای محدودیت هایی باشه! (همون پلاگین نقشه سایتتون در وردپرس)

tam2145
شنبه 10 اسفند 1392, 09:24 صبح
میگم شما مطمئن هستید که یک صفحه استاتیک رو تست کردید ؟
مثلا :
http://example.com/static.html
ببینید دریافت میکنه چون ممکن هست به اون صفحه داینامیکی که وصل میشوید دارای محدودیت هایی باشه! (همون پلاگین نقشه سایتتون در وردپرس)

ارور زیر رو داد :
Warning: file_get_contents(http://example.com/static.html): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /home/abzarroz/public_html/rozveb.php on line 2

tam2145
شنبه 10 اسفند 1392, 09:58 صبح
دوستان این سایت مپ مال سایت رزبلاگ هست . یعنی این سایتی که من قصد دارم سایت مپ ش رو بخونم بر روی رزبلاگ هست . این مشکل رو با پشتیبانی هاستم در میان گذاشتم ، گفتند اگر نیاز به پورت خاصی دارید ، اعلام کنید !! حالا من چیکار کنم ؟؟

abolfazl-z
شنبه 10 اسفند 1392, 15:57 عصر
ارور زیر رو داد :
Warning: file_get_contents(http://example.com/static.html): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /home/abzarroz/public_html/rozveb.php on line 2

همین آدرس را وارد کردید ؟ (http://example.com/static.html (http://example.com/static.html%29:)) :متفکر: :متفکر::متفکر::متفکر:

abolfazl-z
شنبه 10 اسفند 1392, 16:01 عصر
http://www.rozveb.ir/sitemap/post.xml این سایت خودتونه ؟ آیا این تست ها را از سایت(سرور) خودتون انجام میدهید ؟

tam2145
شنبه 10 اسفند 1392, 19:13 عصر
آره ... همون آدرس رو وارد کردم ....
این رز وب توی رزبلاگه ... دامنه بهش وصل شده ...
اما هاست من مال شرکت آبتین هست ...
یعنی یه وبلاگ توی هاست و سرور دیگه ... سایت دیگه ام توی هاست و سرور دیگه ... حالا من می خواهم از طریق سایتم به وبلاگم وصل بشم ...

abolfazl-z
شنبه 10 اسفند 1392, 20:53 عصر
آره ... همون آدرس رو وارد کردم ....

من اون ادرس رو برای مثال گفتم :|

این رز وب توی رزبلاگه ... دامنه بهش وصل شده ...
اما هاست من مال شرکت آبتین هست ...
یعنی یه وبلاگ توی هاست و سرور دیگه ... سایت دیگه ام توی هاست و سرور دیگه ... حالا من می خواهم از طریق سایتم به وبلاگم وصل بشم ...
خوب از همان اول می گفتید دیگه :|

فکر کنم سرور رز بلاگ تشخیص میدهد که شما یک ربات هستید و نتایج رو نشون نمیدهد !
راه حل :
جا زدن خود بجای یک کاربر با استفاده از توابع curl و ارسال هدر های تقلبی !

با تشکر

tam2145
شنبه 10 اسفند 1392, 22:47 عصر
این جا زدن و ارسال هدر های تقلبی را می توانید برای همین سایت مپ رزبلاگ ، برای نمونه برایم توضیح بدهید .
در کل مرسی آقا ابولفضل ... واقعا خیلی بهم کم کردید ... یه دنیا تشکر و سپاس ...
شرمنده ، ولا تازه کار هستم و تازه از ASP به PHP رو آورده ام ...

abolfazl-z
شنبه 10 اسفند 1392, 23:14 عصر
این جا زدن و ارسال هدر های تقلبی را می توانید برای همین سایت مپ رزبلاگ ، برای نمونه برایم توضیح بدهید .
در کل مرسی آقا ابولفضل ... واقعا خیلی بهم کم کردید ... یه دنیا تشکر و سپاس ...
شرمنده ، ولا تازه کار هستم و تازه از ASP به PHP رو آورده ام ...

کاش از همان اول خودم یک تست می کردم :لبخند:

کد ذیل بدون توابع curl :


$options = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n" .
"User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:10\r\n" // i.e. An iPad
)
);
$context = stream_context_create($options);
echo file_get_contents('http://www.rozveb.ir/sitemap/post.xml',false,$context);