سایت بعدی http://www.zcast.ir/ هست
که با اد آن live http header فهمیدم همه اطلاعات لازمش و از یک لینک می گیره
http://www.zcast.ir/getajax.php?0.734628343668354
او عدد رندوم جلوش هم واسه اینه مرورگر اونو کش نکنه و اطلاعات کش نشه تو فاصله 60 ثانیه که هی واکشی اطلاعات انجام میده
ماهم اینجوری اطلاعات وو میخونیم :
$homepage = file_get_contents('http://www.zcast.ir/getajax.php?'.rand());
{"mr_arz":{"USD":{"name":"USD","caption":"\u062f\u 0644\u0627\u0631","ask":"24564","diff":"0","datemo dify":"2013-01-11 18:13:02"},"INR":{"name":"INR","caption":"\u0631\u 0648\u067e\u06cc\u0647 \u0647\u0646\u062f","ask":"449","diff":"0","datemo dify":"2013-01-11 18:13:02"},"AED":{"name":"AED","caption":"\u062f\u 0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a","ask":"6688" ,"diff":"0","datemodify":"2013-01-11 18:13:02"},"JPY100":{"name":"JPY100","caption":"\u 0635\u062f \u06cc\u0646 \u0698\u0627\u067e\u0646","ask":"27900","diff":"0" ,"datemodify":"2013-01-11 18:13:02"},"TRY":{"name":"TRY","caption":"\u0644\u 06cc\u0631 \u062a\u0631\u06a9\u06cc\u0647","ask":"13823","dif f":"0","datemodify":"2013-01-11 18:13:02"},"RUB":{"name":"RUB","caption":"\u0631\u 0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647","ask":"810","diff" :"0","datemodify":"2013-01-11 18:13:02"},"CNY":{"name":"CNY","caption":"\u06cc\u 0648\u0627\u0646 \u0686\u06cc\u0646","ask":"3947","diff":"0","datem odify":"2013-01-10 16:53:32"},"KRW1000":{"name":"KRW1000","caption":" \u064a\u06a9 \u0647\u0632\u0627\u0631 \u0648\u0648\u0646 \u06a9\u0631\u0647 \u062c\u0646\u0648\u0628\u06cc","ask":"23000","dif f":"0","datemodify":"2013-01-10 16:53:02"},"EUR":{"name":"EUR","caption":"\u06cc\u 0648\u0631\u0648","ask":"32057","diff":"0","datemo dify":"2013-01-10 16:53:02"}},"price":{"bazartehran":{"name":"bazart ehran","id":"21","caption":"\u0628\u0627\u0632\u06 27\u0631 \u062a\u0647\u0631\u0627\u0646","ask":"5605000","d iff":"0","datemodify":1357819336,"max":"5605000"," min":"5605000","avg":"5605000"},"pbt":{"name":"pbt ","id":"22","caption":"\u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc","ask":"5617000","diff":" 2000","datemodify":1357884676,"max":"5617000","min ":"5617000","avg":"5617000"},"ounce":{"name":"ounc e","id":"23","caption":"\u0627\u0648\u0646\u0633", "ask":"1673.50","diff":"-0.10","datemodify":1357884678,"max":"1673.50","min ":"1673.50","avg":"1673.50"},"dolar":{"name":"dola r","id":"25","caption":"\u062f\u0644\u0627\u063 1-\u0628\u0627\u0632\u0627\u0631\u062a\u0647\u0631\u 0627\u0646","ask":"0","diff":"-90","datemodify":1357884676,"max":"0","min":"0","a vg":"0"},"silver":{"name":"silver","id":"26","capt ion":"\u0646\u0642\u0631\u0647","ask":"30.89","dif f":"-0.01","datemodify":1357884678,"max":"30.89","min": "30.89","avg":"30.89"},"sekke-gad":{"name":"sekke-gad","id":"27","caption":"\u0633\u06a9\u0647 \u0637\u0631\u062d \u0642\u062f\u06cc\u0645","ask":"12700000","diff": "50000","datemodify":1357884676,"max":"12700000"," min":"12700000","avg":"12700000"},"sekke-jad":{"name":"sekke-jad","id":"28","caption":"\u0633\u06a9\u0647 \u0637\u0631\u062d \u062c\u062f\u06cc\u062f","ask":"12990000","diff": "20000","datemodify":1357884676,"max":"12990000"," min":"12990000","avg":"12990000"},"sekke-nim":{"name":"sekke-nim","id":"29","caption":"\u0646\u06cc\u0645 \u0633\u06a9\u0647","ask":"6470000","diff":"10000" ,"datemodify":1357884676,"max":"6470000","min":"64 70000","avg":"6470000"},"sekke-rob":{"name":"sekke-rob","id":"30","caption":"\u0631\u0628\u0639 \u0633\u06a9\u0647","ask":"3440000","diff":"-10000","datemodify":1357884676,"max":"3440000","mi n":"3440000","avg":"3440000"},"pound":{"name":"pou nd","id":"24","caption":"\u067e\u0648\u0646\u062 f-\u0628\u0627\u0632\u0627\u0631\u062a\u0647\u0631\u 0627\u0646","ask":"0","diff":"-990","datemodify":1357884676,"max":"0","min":"0"," avg":"0"},"eur-gbp":{"name":"eur-gbp","id":"35","caption":"\u06cc\u0648\u0631\u064 8 \u0628\u0647 \u067e\u0648\u0646\u062f","ask":"0.8212","diff":"-001","datemodify":1357884687,"max":"0.8212","min": "0.8212","avg":"0.8212"},"jpy-usd":{"name":"jpy-usd","id":"36","caption":"\u06cc\u0646 \u0628\u0647 \u062f\u0644\u0627\u0631","ask":"0.0112","diff":"-001","datemodify":1357884687,"max":"0.0112","min": "0.0112","avg":"0.0112"},"eur-usd":{"name":"eur-usd","id":"37","caption":"\u06cc\u0648\u0631\u064 8 \u0628\u0647 \u062f\u0644\u0627\u0631","ask":"1.3261","diff":"0 01","datemodify":1357884687,"max":"1.3261","min":" 1.3261","avg":"1.3261"},"gbp-usd":{"name":"gbp-usd","id":"38","caption":"\u067e\u0648\u0646\u062 f \u0628\u0647 \u062f\u0644\u0627\u0631","ask":"1.6148","diff":"0 01","datemodify":1357884687,"max":"1.6148","min":" 1.6148","avg":"1.6148"},"dolar-bankmely":{"name":"dolar-bankmely","id":"41","caption":"\u062f\u0644\u0627\ u0631-\u0645\u0644\u06cc","ask":"12260","diff":"0","date modify":1344758848,"max":"12260","min":"12260","av g":"12260"},"euro-bankmely":{"name":"euro-bankmely","id":"42","caption":"\u06cc\u0648\u0631\ u0648-\u0645\u0644\u06cc","ask":"15110","diff":"0","date modify":1344758848,"max":"15110","min":"15110","av g":"15110"},"pound-bankmely":{"name":"pound-bankmely","id":"43","caption":"\u067e\u0648\u0646\ u062f-\u0645\u0644\u06cc","ask":"19297","diff":"0","date modify":1344758848,"max":"19297","min":"19297","av g":"19297"},"euro":{"name":"euro","id":"34","capti on":"\u06cc\u0648\u0631\u0648-\u0628\u0627\u0632\u0627\u0631\u062a\u0647\u0631\u 0627\u0646","ask":"0","diff":"-90","datemodify":1357884676,"max":"0","min":"0","a vg":"0"},"geram18":{"name":"geram18","id":"350","c aption":"\u06af\u0631\u0645 18 \u0639\u06cc\u0627\u0631","ask":"1293919","diff":" 1154","datemodify":1357819296,"max":"1293919","min ":"1293919","avg":"1293919"},"geram24":{"name":"ge ram24","id":"3500","caption":"\u06af\u0631\u0645 24 \u0639\u06cc\u0627\u0631","ask":"1725216","diff":" 1536","datemodify":1357819296,"max":"1725216","min ":"1725216","avg":"1725216"},"uae-derham":{"name":"uae-derham","id":"364","caption":"\u062f\u0631\u0647\u 0645 \u0627\u0645\u0627\u0631\u0627\u062a","ask":"0","d iff":"-90","datemodify":1357884676,"max":"0","min":"0","a vg":"0"},"oil":{"name":"oil","id":"373","caption": "\u0646\u0641\u062a","ask":"93.84","diff":"-0.02","datemodify":1357884687,"max":"93.84","min": "93.84","avg":"93.84"},"palladium":{"name":"pallad ium","id":"19","caption":"\u067e\u0627\u0644\u0627 \u062f\u06cc\u0648\u0645","ask":"695","diff":"0"," datemodify":1357884678,"max":"695","min":"695","av g":"695"},"platinum":{"name":"platinum","id":"18", "caption":"\u067e\u0644\u0627\u062a\u06cc\u0646\u0 6cc\u0648\u0645","ask":"1641","diff":"0","datemodi fy":1357884678,"max":"1641","min":"1641","avg":"16 41"},"sekke-grm":{"name":"sekke-grm","id":"400","caption":"\u0633\u06a9\u0647 \u06af\u0631\u0645\u06cc","ask":"2170000","diff":" 20000","datemodify":1357884676,"max":"2170000","mi n":"2170000","avg":"2170000"},"USD":{"name":"USD", "caption":"\u062f\u0644\u0627\u0631 \u0622\u0645\u0631\u06cc\u06a9\u0627","ask":"11230 ","diff":"0","datemodify":1325916000,"max":"0","mi n":"0","avg":"0"},"GBP":{"name":"GBP","caption":"\ u067e\u0648\u0646\u062f \u0627\u0646\u06af\u0644\u06cc\u0633","ask":"17329 ","diff":"0","datemodify":1325916000,"max":"0","mi n":"0","avg":"0"},"CHF":{"name":"CHF","caption":"\ u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u06cc\u0633","ask":"11758","diff":"0" ,"datemodify":1325916000,"max":"0","min":"0","avg" :"0"},"SEK":{"name":"SEK","caption":"\u06a9\u0631\ u0648\u0646 \u0633\u0648\u0626\u062f","ask":"1618","diff":"0", "datemodify":1325916000,"max":"0","min":"0","avg": "0"},"NOK":{"name":"NOK","caption":"\u06a9\u0631\u 0648\u0646 \u0646\u0631\u0648\u0698","ask":"1859","diff":"0", "datemodify":1325916000,"max":"0","min":"0","avg": "0"},"DKK":{"name":"DKK","caption":"\u06a9\u0631\u 0648\u0646 \u062f\u0627\u0646\u0645\u0627\u0631\u06a9","ask": "1921","diff":"0","datemodify":1325916000,"max":"0 ","min":"0","avg":"0"},"AED":{"name":"AED","captio n":"\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a","ask":"3058" ,"diff":"0","datemodify":1325916000,"max":"0","min ":"0","avg":"0"},"KWD":{"name":"KWD","caption":"\u 062f\u06cc\u0646\u0627\u0631 \u06a9\u0648\u06cc\u062a","ask":"40260","diff":"0" ,"datemodify":1325916000,"max":"0","min":"0","avg" :"0"},"PY100":{"name":"PY100","caption":"\u06cc\u0 6a9\u0635\u062f \u06cc\u0646 \u0698\u0627\u067e\u0646","ask":"14588","diff":"0" ,"datemodify":1325916000,"max":"0","min":"0","avg" :"0"},"HKD":{"name":"HKD","caption":"\u062f\u0644\ u0627\u0631 \u0647\u0646\u06af \u06a9\u0646\u06af","ask":"1447","diff":"0","datem odify":1325916000,"max":"0","min":"0","avg":"0"}," OMR":{"name":"OMR","caption":"\u0631\u06cc\u0627\u 0644 \u0639\u0645\u0627\u0646","ask":"29163","diff":"0" ,"datemodify":1325916000,"max":"0","min":"0","avg" :"0"},"CAD":{"name":"CAD","caption":"\u062f\u0644\ u0627\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627","ask":"10926 ","diff":"0","datemodify":1325916000,"max":"0","mi n":"0","avg":"0"},"ZAR":{"name":"ZAR","caption":"\ u0631\u0627\u0646\u062f \u0622\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc","ask":"1374","diff ":"0","datemodify":1325916000,"max":"0","min":"0", "avg":"0"},"TRY":{"name":"TRY","caption":"\u0644\u 06cc\u0631\u0647 \u062a\u0631\u06a9\u06cc\u0647","ask":"5978","diff ":"0","datemodify":1325916000,"max":"0","min":"0", "avg":"0"},"RUB":{"name":"RUB","caption":"\u0631\u 0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647","ask":"350","diff" :"0","datemodify":1325916000,"max":"0","min":"0"," avg":"0"},"QAR":{"name":"QAR","caption":"\u0631\u0 6cc\u0627\u0644 \u0642\u0637\u0631","ask":"3085","diff":"0","datem odify":1325916000,"max":"0","min":"0","avg":"0"}," AUD":{"name":"AUD","caption":"\u062f\u0644\u0627\u 0631 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627", "ask":"11491","diff":"0","datemodify":1325916000," max":"0","min":"0","avg":"0"},"SAR":{"name":"SAR", "caption":"\u0631\u06cc\u0627\u0644 \u0633\u0639\u0648\u062f\u06cc","ask":"2995","diff ":"0","datemodify":1325916000,"max":"0","min":"0", "avg":"0"},"BHD":{"name":"BHD","caption":"\u062f\u 06cc\u0646\u0627\u0631 \u0628\u062d\u0631\u06cc\u0646","ask":"29784","dif f":"0","datemodify":1325916000,"max":"0","min":"0" ,"avg":"0"},"SGD":{"name":"SGD","caption":"\u062f\ u0644\u0627\u0631 \u0633\u0646\u06af\u0627\u067e\u0648\u0631","ask": "8685","diff":"0","datemodify":1325916000,"max":"0 ","min":"0","avg":"0"},"CNY":{"name":"CNY","captio n":"\u06cc\u0648\u0627\u0646 \u0686\u06cc\u0646","ask":"1780","diff":"0","datem odify":1325916000,"max":"0","min":"0","avg":"0"}," MYR":{"name":"MYR","caption":"\u0631\u06cc\u0646\u 06af\u06cc\u062a \u0645\u0627\u0644\u0632\u06cc","ask":"3568","diff ":"0","datemodify":1325916000,"max":"0","min":"0", "avg":"0"},"RW1000":{"name":"RW1000","caption":"\u 06cc\u06a9 \u0647\u0632\u0627\u0631 \u0648\u0648\u0646 \u06a9\u0631\u0647 \u062c\u0646\u0648\u0628\u06cc","ask":"9677","diff ":"0","datemodify":1325916000,"max":"0","min":"0", "avg":"0"},"EUR":{"name":"EUR","caption":"\u06cc\u 0648\u0631\u0648","ask":"14284","diff":"0","datemo dify":1325916000,"max":"0","min":"0","avg":"0"},"B YR1000":{"name":"BYR1000","caption":"\u06cc\u06a9 \u0647\u0632\u0627\u0631 \u0631\u0648\u0628\u0644 \u0628\u0644\u0627\u0631\u0648\u0633","ask":"1330" ,"diff":"0","datemodify":1325916000,"max":"0","min ":"0","avg":"0"}},"atie":{"priceAtie0":{"tGheimat1 ":"","akhTaghirGH":"","akhTaghirD":"","sekke":"12, 990,000"},"priceAtie1":{"tGheimat1":"-","akhTaghirGH":"-","akhTaghirD":"-","sekke":""},"priceAtie2":{"tGheimat1":"-","akhTaghirGH":"-","akhTaghirD":"-","sekke":""}},"priceGraph":{"28":"chart\/tmp\/chart28.png","25":"chart\/tmp\/chart25.png","23":"chart\/tmp\/chart23.png"},"utime":"09:41:18 22-10-1391"}
اطلاعات و با فرمت خاصی کنار هم قرار میده
با تلفیق { و } و : و ,
خوب هرچی دید قوی تری داشته باشید راحت تر با پترن نویسی و یا explode میتونید اطلاعات و بکشید بیرون
من راستش از دستا حر فه ای میخواام رو این فایل کار کنند تا همه اطلاعات و با ی ستاندارد خاص بکشند بیرون چون حتما وقتی با نظم کنار هم نوشته شده با نظم هم میشه بیرون کشوند اوناره
مشتری من قیمت ارز و میخواست که همون اوایل بود :
$homepage = substr($homepage,1,(strlen($homepage)-1));
$homepage = explode("}",$homepage,-2);
$mr_arz_ar = array();
$mr_arz = $homepage[0];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[2];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['USD'] = $mr_arz;
////
$mr_arz = $homepage[1];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['INR'] = $mr_arz;
////
$mr_arz = $homepage[2];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['AED'] = $mr_arz;
////
$mr_arz = $homepage[3];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['JPY100'] = $mr_arz;
////
$mr_arz = $homepage[4];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['TRY'] = $mr_arz;
////
$mr_arz = $homepage[5];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['RUB'] = $mr_arz;
////
$mr_arz = $homepage[6];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['CNY'] = $mr_arz;
////
$mr_arz = $homepage[7];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['KRW1000'] = $mr_arz;
////
$mr_arz = $homepage[8];
$mr_arz = explode("{",$mr_arz,3);
$mr_arz = $mr_arz[1];
$mr_arz = explode(",",$mr_arz);
$mr_arz = $mr_arz[2];
$mr_arz = explode(":",$mr_arz);
$mr_arz = str_replace('"','',$mr_arz[1]);
$mr_arz_ar ['EUR'] = $mr_arz;
اینجوری کشیدمشون بالا
سرعت بالایی هم داره
خوبیش اسنه که سایت zcast اطلاعات خوبی میده و بهتر از اون اینه که اطلاعاتش و اینجوری رفرش میکنه که سرعت پردازش اون مشاوی با کار با فایل ساده است
یعنی ربات بخوایم بنویسیم سرعت وبی داره و پردازش خیلی سنگینی نیست
بنا به درخواست مشتریم از سایت http://www.sepandexchange.com/home.aspx هم نرخ ارز و گرفتم :
$homepage = file_get_contents('http://www.sepandexchange.com/home.aspx');
if (!$wsql->connect('string', $homepage)){
print 'Error while connecting: ' . $wsql->error;
exit;
}
if (!$wsql->query('SELECT * FROM table WHERE $id=="GridView1"')){
print "Query error: " . $wsql->error;
exit;
}
$arz2 = $wsql->fetch_array();
$arz2 = $arz2[0]['text'];
// get arz
$dom = new DOMDocument;
@$dom->loadHTML( mb_convert_encoding($arz2, 'HTML-ENTITIES', "UTF-8") );
$cells = array();
foreach( $dom->getElementsByTagName( 'td' ) as $td ) {
$cells[] = $td->nodeValue;
}
$arz2 = array();
$arz2[] = $cells[0];
$arz2[] = $cells[1];
$arz2[] = $cells[6];
$arz2[] = $cells[7];
$arz2[] = $cells[12];
$arz2[] = $cells[13];
$arz2[] = $cells[18];
$arz2[] = $cells[19];
$arz2[] = $cells[24];
$arz2[] = $cells[25];
$arz2[] = $cells[30];
$arz2[] = $cells[31];
$arz2[] = $cells[36];
$arz2[] = $cells[37];
$arz2[] = $cells[42];
$arz2[] = $cells[43];
$arz2[] = $cells[48];
$arz2[] = $cells[49];
$arz2[] = $cells[54];
$arz2[] = $cells[55];
$arz2[] = $cells[60];
$arz2[] = $cells[61];
$arz2[] = $cells[66];
$arz2[] = $cells[67];
$arz2[] = $cells[72];
$arz2[] = $cells[73];
$arz2[] = $cells[78];
$arz2[] = $cells[79];
$arz2[] = $cells[84];
$arz2[] = $cells[85];
$arz2[] = $cells[90];
$arz2[] = $cells[91];
$arz2[] = $cells[96];
$arz2[] = $cells[97];
خوب الان من 4 تا آرایه دارم که توش اطلاعات هست و ایندکس های اون پشت سر هم باید کنم
همه آرایه ها و با هم merge کردم
و زمان و تاریخ فارسی هم توش قرار دادم البته پست ها بالا هم گفتم فیلد time از نوع timestamp هست کار اصافی هست
$complete = array();
$complete = array_merge( $gold,$coin);
$complete = array_merge($complete, $mr_arz_ar);
$complete = array_merge($complete, $arz2);
$complete = array_merge($complete, array(date('H:i:s'),$persian->date('y/m/d')));
یک جدول داشتیم به اسم data
یک فیلد داشت به نام data از نوع text
همه اطلاعات و من با یک سمیکالون به هم چسبوندم و ریختم تو این فیلد
$db_info = implode(";",$complete);
$data = array();
$data['id']=null;
$data['data'] = $db_info;
$obj->insert_mysql("data",$data);
خوب هر 5 مین اجرا بشه این اسکریپت توسط کران جاب بانگ پر میشه
واسه همین مثلا 3 تا اطلاعات و باقی میزاریم بقیه که از تاریخ
گشتست و پاک میکنیم
$obj->query_mysql("DELETE FROM data WHERE time < current_timestamp - interval '15' minute;");
خوب تا اینجا ما اطلاعات و تو بانک داریم