PDA

View Full Version : سوال: چجوری google map رو از سمت سرور اجرا کنم



se8820726
سه شنبه 02 آبان 1391, 00:11 صبح
سلام به تمام دوستان عزیز

آقا این اسکریپت گوگل مپ برای ip های ایران کار نمیکنه و حتما باید با (v)(p)(n) وصل بشیم تا کار کنه
حالا من میخوام یه کدی بنویسم که اطلاعات اول برای سرور من فرستاده بشه و سرور اونارو بفرسته به سایت google و عین جوابی که میگیره رو بفرسته برای کلاینت

خوب اول کار کد شماره 1 رو به شماره 2 تبدیل کردم:
کد شماره 1:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyD5wYIBtIlrcGPLpYc49ARJnWv-rJbTLDg&sensor=false"></script>


کد شماره 2:

<script>
<?php
$url="http://maps.googleapis.com/maps/api/js?key=AIzaSyD5wYIBtIlrcGPLpYc49ARJnWv-rJbTLDg&sensor=false";
set_time_limit ( 120 );
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
$data = curl_exec ($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
set_time_limit (ini_get('max_execution_time'));
curl_close ($ch);
echo $data;
?>
</script>



منتهی حالا قبل از اون دستور echo تو کد شماره 2 باید کل اطلاعات دریافتی رو چک کنم و به جای لینک ها ادرس سرور خودمو با یه شناسه مثلا فیلد کلیدی پایگاه داده قرار بدم و خود لینک ها رو هم تو پایگاه داده ام ذخیره کنم
منتهی این نحوه پیدا کردن لینک ها تو کد پیچیدست!!؟؟
فقط میدونم که باید از regex استفاده کرد اما کدش رو نمیدونم

لطفا دوستان تو این زمینه کمک کنند؟

Unique
سه شنبه 02 آبان 1391, 01:48 صبح
دوست عزیز من هم اخیرا این مشکل را داشتم ، موضوع اینه که این فایل javascript خودش ف*ی*ل*ت*ر نشده بلکه یکسری اسکریپت های داخلیش که صدا زده میشه مشکل پیدا کرده! من قیدش را زدم چون معلوم نیست دیگه چه مشکلی پیش بیاد براش و دیگه stable نیست ! نمیدونم چه آدم کم عقلی google map را وارد این قضیه کرده اما اشکالی نداره چون از این آدم ها کم نداریم.

se8820726
سه شنبه 02 آبان 1391, 09:48 صبح
من به خاطر جنبه آموزشی این کار دنبالشم
چون این طوری هر اسکریپت دیگه سمت کلاینت رو میتونم از سمت سرور اجرا کنم
پس لطفا دوستان کمک کنند.
من الان یه کدی میخوام که بوسیله regex بتونه تمام لینک هارو تو یه متغیر string تشخیص بده

se8820726
سه شنبه 02 آبان 1391, 23:47 عصر
سلام آقا من کد شماره 2 رو به این تغییر دادم:


<?php
require_once 'db.php';

$url="http://maps.googleapis.com/maps/api/js?key=AIzaSyD5wYIBtIlrcGPLpYc49ARJnWv-rJbTLDg&sensor=false";
set_time_limit ( 120 );
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
$data = curl_exec ($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
set_time_limit (ini_get('max_execution_time'));
curl_close ($ch);

$count= preg_match_all('@"(http[s]?://.*?)"@i',$data,$matches,PREG_OFFSET_CAPTURE);

foreach (array_reverse($matches[1]) as $match) {
$id = mysql_fetch_assoc( mysql_query("select * from google_map where link= '$match[0]'",$con));
if ( !$id ) {
mysql_query("INSERT INTO google_map (link) VALUES ('$match[0]')",$con);
$id = mysql_fetch_assoc( mysql_query("select * from google_map where link= '$match[0]'",$con));
}
$data = substr_replace($data,"http://my_domain_url?link=".$id['id'],$match[1], strlen($match[0]) );
}

echo $data;
mysql_close($con);
?>


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

حالا میخوام اطلاعاتی که از سمت کلاینت میاد رو بفرستم برای google.
خوب از مقدار توی:
$_GET['link']
میشه فهمید که از کلاینت درخواست فرستاده شده و برای کدوم لینک فرستاده شده.
اما حالا چطوری بفهمم که چه اطلاعاتی اومده و چطور بفرستمشون برای یه سرور دیگه؟
مثلا از کجا بفهمم چه اطلاعات هدری برام اومده؟ و اطلاعات غیر هدری چی اومده؟

لطفا دوستانی که تو این زمینه ها اطلاعات دارن کمک کنند.

se8820726
چهارشنبه 03 آبان 1391, 14:38 عصر
آقا کسی نبود به ما کمک کنه!!

se8820726
جمعه 05 آبان 1391, 00:26 صبح
آقا کسی نبود به ما کمک کنه؟؟!!