رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استفاده از دستور file_get_contents
#1
سلام
من با دستور
file_get_contents($url);
اطلاعات یک صفحه وب رو به صورت یک رشته ذخیره می کنم ولی روی برخی از آدرس ها کار نمی کند.
مثلا آدرس زیر رو امتحان کنید:

http://new.tse.ir/instrument/%D8%BA%...1SBEH0001.html

آیا روش خاصی وجود دارد یا دستور دیگری؟

ممنون
پاسخ
تشکر شده توسط:
#2
خود این سایتها بعد از بارگذاری، با AJAX یا سایر روشها دارن محتوا رو تولید میکنن. باید توسط ابزارهایی مثل FireBug در سربرگ Net ببینید توی کدشون از چه منبعی محتوای اصلی بارگذاری میشه و شما هم همون رو بخونین. اغلبشون هم خروجی رو بصورت JSON یا آرایه‌ی ساده میگیرن و بعد تحلیل میکنن و توی صفحه میچینن. باید فرمول و محل قرارگرفتن هر آیتم توی خروجی رو هم طبق محتوای صفحه بدست بیارین.
پاسخ
تشکر شده توسط: mehdi4467
#3
ممنون
بله در فایرفاکس دیدم و عکس را هم پیوست کرده ام.
منتها من تا الان به این شکل اطلاعات را از صفحه ای نگرفته ام.
می توانید کمک کنید یا نمونه کد بدهید؟

ممنون

   
پاسخ
تشکر شده توسط:
#4
شما باید همون صفحه‌ای که در قسمت File اعلام شده، با file_get_contents بخونین و محتواش رو با json_decode تبدیل به شئ کنید و پردازش کنین.
پاسخ
تشکر شده توسط: mehdi4467
#5
ممنون درست شد و اطلاعت به شکل زیر دریافت شد
الان برای اینکه این ها استفاده کنم باید چه کنم به نظر می رسه قبل از استفاده از آنها به صورت آرایه باید یک کار دیگری هم انجام داد:

stdClass Object
(
   [ci] => IRO1SBEH0004
   [inP] => IRX6X42T0006
   [cat] => 1
   [a_tag] => 3313274223
   [header] => Array
       (
           [0] => stdClass Object
               (
                   [name] => صنعتي‌ بهشهر
                   [namad] => غبشهر1
                   [state] => مجاز
               )

           [1] => stdClass Object
               (
                   [am] => 2,438
                   [dar] => -41 (-1.65%)
                   [time] => 16 فروردین 1396-12:29
               )

       )

   [mainData] => stdClass Object
       (
           [ghp] => stdClass Object
               (
                   [v] => 2,440
                   [p] => (-1.57%) -39
               )

           [dm] => 134
           [bt] => stdClass Object
               (
                   [u] => 2,452
                   [d] => 2,418
               )

           [hmo] => 959,028
           [agh] => 2,452
           [arm] => 2.3 B
           [rgh] => 2,479
           [tds] => -3
           [eps] => Array
               (
                   [0] => 582
                   [1] => 1396/09/30
                   [2] => 1395/09/20
               )

           [hma] => 1,200,000
           [pe] => 4.19
           [ts] => 3 B
           [bm] => stdClass Object
               (
                   [u] => 2,602
                   [d] => 2,356
               )

           [arb] => 7,320.0 B
           [f2] => stdClass Object
               (
                   [u] => -
                   [d] => -
               )

           [nav] => 0
           [classes] => stdClass Object
               (
               )

           [kh] => Array
               (
                   [0] => stdClass Object
                       (
                           [vol] => 587,019
                           [per] => 61.2%
                           [am] => 61
                       )

                   [1] => stdClass Object
                       (
                           [vol] => 372,009
                           [per] => 38.8%
                           [am] => 6
                       )

                   [2] => stdClass Object
                       (
                           [vol] => 
                           [per] => 
                           [am] => 67
                       )

               )

           [f] => Array
               (
                   [0] => stdClass Object
                       (
                           [vol] => 949,768
                           [per] => 99.0%
                           [am] => 37
                       )

                   [1] => stdClass Object
                       (
                           [vol] => 9,260
                           [per] => 1.0%
                           [am] => 1
                       )

                   [2] => stdClass Object
                       (
                           [vol] => 
                           [per] => 
                           [am] => 38
                       )

               )

           [kh_p] => 64
           [f_p] => 36
       )

   [lTables] => stdClass Object
       (
           [kh] => Array
               (
                   [0] => stdClass Object
                       (
                           [val] => Array
                               (
                                   [0] => 2,430
                                   [1] => 1
                                   [2] => 3,000
                               )

                       )

                   [1] => stdClass Object
                       (
                           [val] => Array
                               (
                                   [0] => 2,421
                                   [1] => 1
                                   [2] => 15,200
                               )

                       )

                   [2] => stdClass Object
                       (
                           [val] => Array
                               (
                                   [0] => 2,420
                                   [1] => 3
                                   [2] => 21,009
                               )

                       )

               )

           [f] => Array
               (
                   [0] => stdClass Object
                       (
                           [val] => Array
                               (
                                   [0] => 2,438
                                   [1] => 1
                                   [2] => 630
                               )

                       )

                   [1] => stdClass Object
                       (
                           [val] => Array
                               (
                                   [0] => 2,445
                                   [1] => 1
                                   [2] => 23,000
                               )

                       )

                   [2] => stdClass Object
                       (
                           [val] => Array
                               (
                                   [0] => 2,450
                                   [1] => 2
                                   [2] => 10,696
                               )

                       )

               )

       )

   [co] => Array
       (
           [0] => stdClass Object
               (
                   [n] => مارگارين‌
                   [s] => غمارگ1
                   [l] => IRO1MRGN0001
                   [v] => Array
                       (
                           [0] => 12:27 - 1396/1/16
                           [1] => 30
                           [2] => 89,069
                           [3] => 545.6 M
                           [4] => 6,184
                           [5] => 6,100
                           [6] => -94
                           [7] => -1.50
                           [8] => 2,226.2 B
                           [9] => -
                       )

               )

       )

)
پاسخ
تشکر شده توسط:
#6
این الان یه شئ هست از نوع StdClass و میتونین به این شکل باهاش کار کنین:
$data = json_decode($json);
echo $data->header[0]->name;

البته با کمک foreach و... هم قابل پیمایش هست.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 3 مهمان