نمایش نتایج 1 تا 9 از 9

نام تاپیک: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

  1. #1
    کاربر دائمی آواتار kabootar_y
    تاریخ عضویت
    خرداد 1393
    محل زندگی
    ایران/اصفهان
    پست
    234

    به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    با سلام

    من به یه کلاس یا تابع php یا javascript نیاز دارم که آدرس یک صفحه html که روی یک سایت و سرور دیگه هست رو بهش بدیم و در خروجی لیستی از همه فایل هایی که از طریق این فایل html آدرس دهی شدند رو بهم بده
    حتی آدرس تصویر هایی که در فایل هایی css لینک شده در این فایل html رو در لیست بهم بده

    اگه کسی سراغ داره ممنون میشم معرفی کنید

    خیلی جستجو کردم ولی به نتیجه ای نرسیدم

    برای مثال تابعی اینطوری:







    function list_files($url){
    php codes...
    return $list;
    }


    $list = list_files('http://domain.com');

    print_r($list);

    خروجی:


    Array( [0] => http://domain.com/images/example1.png [1] => http://domain.com/images/example2.gif [2] => http://domain.com/images/example3.jpg [3] => http://domain.com/css/example4.css [4] => http://domain.com/js/example5.js [5] => http://domain.com/images/css/example6.png [6] => http://domain.com/images/css/example7.png)




  2. #2
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    در مورد html parsing تحقیق کنید و میتونید از این کلاس هم استفاده کنید.
    اما چه کاری میخواین دقیقا انجام بدین ؟

  3. #3
    کاربر دائمی آواتار kabootar_y
    تاریخ عضویت
    خرداد 1393
    محل زندگی
    ایران/اصفهان
    پست
    234

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    در مورد html parsing تحقیق کنید و میتونید از این کلاس هم استفاده کنید.
    اما چه کاری میخواین دقیقا انجام بدین ؟
    می خوام مثلا آدرس یه صفحه رو که دادم لیست تمام فایل ها رو بده بعد فایل ها رو توسط php و توی یه حلقه کپی کنم. همین

  4. #4
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    می خوام مثلا آدرس یه صفحه رو که دادم لیست تمام فایل ها رو بده بعد فایل ها رو توسط php و توی یه حلقه کپی کنم. همین
    از طریق کلاسی که معرفی کردم میشه اما باز هم نفهمیدم چرا میخواین این کار را بکنید ؟ چه فایده ای داره ؟

  5. #5
    کاربر دائمی آواتار kabootar_y
    تاریخ عضویت
    خرداد 1393
    محل زندگی
    ایران/اصفهان
    پست
    234

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    از طریق کلاسی که معرفی کردم میشه اما باز هم نفهمیدم چرا میخواین این کار را بکنید ؟ چه فایده ای داره ؟
    کلاسی که شما معرفی کردید رو من کم و بیش باهاش آشنا هستم ولی با اون نمیشه بعضی از فایل ها رو پیدا کرد
    مثلا تصاویری که در فایل های css آدرس دهی شدن
    فایل های css که در یک فایل css دیگه import شده
    فایل های جاوا اسکریپتی که در یک فایل جاوا اسکریپت دیگر فراخوانی شده

    ببین دوست عزیز من میخوام لیست کامل فایل هایی که به صفحه (مثلا http://domain.com/gallery.html) مرتبط هستند و در این صفحه مورد استفاده قرار گرفتن رو بدست بیارم
    بعد که لیست رو گرفتم حالا تک تک این فایل ها رو به هر نحوی کپی کنم

    فکر نمی کنم خیلی پیچیده باشه

    مثلا در آدرس http://tools.pingdom.com/fpt وقتی یک سایت رو آنالیز میکنی لیستی از کل فایل ها رو با عنوان Requests done to load this page نمایش میده. من همچین چیزی می خوام

  6. #6
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    قبل از هر چیز خوشحالم دوباره یکنفر توی انجمن پیدا شده که سوال چالشی و با حال میپرسه ! نه اینکه بگه من توی خروجی پایگاه داده برای فارسی مشکل دارم یا خطای headers already sent میگیرم یا خطای resource و object و این چیزا که خسته شدم از بس خودم و دوستان جواب دادیم و متاسفانه حتی به خودشون زحمت نمیدن جستجو کنند.

    در جواب باید خدمتتون بگم اگه php کلاس یا کدی برای پیدا کردن فایل ها توی سورس ها داشته باشه یا حتی یک browser کامل قطعا نمیتونه راه حل مناسبی برای این کار باشه.
    برای پیدا کردن این فایل ها و بدست آوردن حجمشون و اینکه فایل هست یا نه شبیه به کاری که سایت مورد نظرتون انجام میده باید از نرم افزار های دیگه استفاده کرد و خروجیشون را با php خیلی تر و تمیز به کاربر نشون داد.

    برای پیدا کردن این فایل ها شما باید http response هایی که مرورگر روی پورت 80 میگیره را آنالیز کنید. توی اونها هم مسیر کامل فایل هست ، هم اینکه فایل وجود داشته یا نه و هم اینکه حجمش چقدره. اگه فقط مسیر براتون مهمه با http request ها هم مشکلتون حله. اما چطوری میشه فهمید ؟

    قطعا از نرم افزار های زیادی میشه استفاده کرد اما اگه من قرار بود این پروژه را انجام بدم از tcpdump لینوکس استفاده میکردم. خیلی راحت tcpdump را با یک فیلتر که http header ها را روی پورت 80 و دامنه مورد نظر توی فایل Log بنویسه صدا میزدم. بعدش با lynx یا w3m یا حتی firefox سایت را فراخونی میکردم و بعدش tcpdump را قطع میکردم و خروجی log را بررسی میکردم ببینم چه خبره و به کاربر نشون میدادم. همین.

    این کار را با هر http sniffer یا tcp sniffer و حتی نرم افزار های proxy که Log بگیرن میشه انجام داد ،‌حتی میشه دستور را به شکلی نوشت که Log توی فایلی به نام همون دامنه ذخیره بشه.

    اصل قضیه اینه اما اینجا انجمن php هست و بحث در موردش خیلی به کار انجمن نمیاد در ضمن نیاز به کمی معلومات از لینوکس و پروتوکل http و از همه مهمتر وقت داره که متاسفانه وقت ندارم براتون کل پروسه را انجام بدم و بگدارم. ولی امیدوارم اگه ارزشش را داره انجام بدین. کافیه توی گوگل دنبال tcpdump و دستورات اجرایی php مثل exec بگردین و این را بدونین روی هاست shared نمیشه این تیپ کار ها را انجام داد و نیاز به دسترسی های بیشتری هست و باید سرویس اختصاصی مجازی یا واقعی بگیرین./

    موفق باشین.

  7. #7

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    نقل قول نوشته شده توسط kabootar_y مشاهده تاپیک
    کلاسی که شما معرفی کردید رو من کم و بیش باهاش آشنا هستم ولی با اون نمیشه بعضی از فایل ها رو پیدا کرد
    مثلا تصاویری که در فایل های css آدرس دهی شدن
    فایل های css که در یک فایل css دیگه import شده
    فایل های جاوا اسکریپتی که در یک فایل جاوا اسکریپت دیگر فراخوانی شده

    ببین دوست عزیز من میخوام لیست کامل فایل هایی که به صفحه (مثلا http://domain.com/gallery.html) مرتبط هستند و در این صفحه مورد استفاده قرار گرفتن رو بدست بیارم
    بعد که لیست رو گرفتم حالا تک تک این فایل ها رو به هر نحوی کپی کنم

    فکر نمی کنم خیلی پیچیده باشه

    مثلا در آدرس http://tools.pingdom.com/fpt وقتی یک سایت رو آنالیز میکنی لیستی از کل فایل ها رو با عنوان Requests done to load this page نمایش میده. من همچین چیزی می خوام
    شما اول باید بگید کدوم از این دو حالت رو نیاز دارید:
    ۱ . لیست لینک ها (تگ a) و فایل های css و import ها و url() های داخل فایل های css و عکس ها (تگ img) و ...

    برای اینکارها باید فایل html رو بگیرید و پارس کنید مثلا با استفاده از کامپوننت symfony crawler میتونید کل تگ های a رو اینجوری بگیرید:


    use Symfony\Component\DomCrawler\Crawler;


    // Todo fetch html contents ...


    $crawler = new Crawler($html);


    $urls = $crawler->filter('a')->each(function(Crawler $crawler) {
    return $crawler->attr('href');
    });


    اطلاعات بیشتر:
    http://symfony.com/doc/current/compo...m_crawler.html

    همچنین برای پارس کردن فایل های css:
    https://github.com/sabberworm/PHP-CSS-Parser

    2. مانیتور کردن نتورک و پیدا کردن ریسورس ها
    اگه به این نیاز دارید که لیست ریسورس هایی که موقع لود صفحه دریافت می شود را پیدا کنید (مثل فایل های css / عکس ها و ...) می تونید خیلی راحت با phantomjs اینکارو انجام بدید و نتیجه ای مشابه به pingdom دریافت کنید:


    var page = require('webpage').create();
    page.onResourceRequested = function(request) {
    console.log('Request ' + JSON.stringify(request, undefined, 4));
    };
    page.onResourceReceived = function(response) {
    console.log('Receive ' + JSON.stringify(response, undefined, 4));
    };
    page.open(url);


    اطلاعات بیشتر:
    http://phantomjs.org/network-monitoring.html

    همچنین میتونید کاری که با symfony crawler هم انجام دادید، با phantomjs هم انجام بدید.

    در روش دوم فقط لیست فایل هایی به شما داده می شود که کاربر هنگام مشاهده صفحه آن ها را لود می کند. مثلا اگر display یک تصویر none باشد مرورگر درخواستی هم به سرور ارسال نمی کند. یا هنگامی برای اندازه صفحه موبایل یک resource خاص لود می شود ولی برای دسکتاپ خیر (responsive / adaptive design)

  8. #8
    کاربر دائمی آواتار kabootar_y
    تاریخ عضویت
    خرداد 1393
    محل زندگی
    ایران/اصفهان
    پست
    234

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    شما اول باید بگید کدوم از این دو حالت رو نیاز دارید:
    من به همین حالت دوم رو که فرمودید میخوام یعنی وقتی آدرس یک صفحه مثلا http://domain.com/news/page/12 رو بهش دادم لیست تمام فایل هایی که نقش داشتن تا صفحه این شکلی به نمایش در بیاد رو بهم بده.

    در روش دوم فقط لیست فایل هایی به شما داده می شود که کاربر هنگام مشاهده صفحه آن ها را لود می کند. مثلا اگر display یک تصویر none باشد مرورگر درخواستی هم به سرور ارسال نمی کند. یا هنگامی برای اندازه صفحه موبایل یک resource خاص لود می شود ولی برای دسکتاپ خیر (responsive / adaptive design)
    مهم نیست که مثلا اگه عکسی برای بکگراند در حالت نمایش در موبایل در نظر گرفته شده رو توی لیست قرار نده


    ولی من متوجه نشدم که باید چی کار کنم اگه با یه مثال بهم بفهمونید خیلی عالی میشه

    به هرحال از لطفتون بسیار متشکرم

  9. #9
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به یک class یا تابع برای لیست کردن فایل های یک صفحه html

    روشی که djtrex با استفاده از phantomjs پیشنهاد داده خیلی خوبه ! حواسم کلا به phantomjs نبود.

    ولی من متوجه نشدم که باید چی کار کنم اگه با یه مثال بهم بفهمونید خیلی عالی میشه
    phantomjs یک webkit با api ی جاوااسکریپتی هست که برای تست وب سایت ، thumbnail گرفتن از سایت ، دسترسی به DOM و اعمال تغییرات توی محتوای صفحات و Network Monitoring که من اصلا حواسم بهش نبود کاربرد داره. من توی این پست وبلاگم در مورد Webshot گرفتن با phantomjs توضیحاتی دادم که میتونی روش استفاده را متوجه بشی. فقط از کد های مربوط به Monitoring باید استفاده کنی.

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: جمعه 06 دی 1392, 23:39 عصر
  2. گفتگو: معرفی سروری برای Upload کردن فایل های وب سایت
    نوشته شده توسط morteza_mokhtari در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 07 اسفند 1391, 21:10 عصر
  3. نرم افزاری جالب برای کوچک کردن فایل های css و جاوااسکریپت
    نوشته شده توسط aminmorteza در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: دوشنبه 29 آبان 1391, 21:59 عصر
  4. پاسخ: 10
    آخرین پست: شنبه 18 شهریور 1391, 19:03 عصر
  5. لیست کردن فایل های یک آدرس اینترنتی
    نوشته شده توسط alimooghashang در بخش توسعه نرم افزار تحت وب
    پاسخ: 3
    آخرین پست: پنج شنبه 11 مهر 1387, 00:56 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •