سلام.
ما ابتدا باید کد HTML خروجی صفحه را به دست آورده و در یک متغیر ذخیره کنیم. اگر صفحه بر اساس http باشد، تابع file_get_contents را به کار ببرید :
اما برای صفحاتی که از https استفاده می کنند، کمی دردسر داریم. فکر می کنم یک کتابخانه (library) با نام curl بود که برای دریافت کدهای HTML اینگونه صفحات به کار می رفت (در مورد آن تحقیق کنید، احتمالا PHP موجود در سرور واقعی، آن را دارد، چون خودم روی نرم افزار شبیه ساز سرور روی کامپیتر شخصی تست کردم و نداشت (البته بستگی به نسخه و خود نرم افزار هم دارد)، ولی روی سرور اصلی، کتابخانه curl را داشت و کدها اجرا می شد).
بعد که کدهای HTML صفحه را به دست آوردیم (با هر کدام از آن دو روش)، می توانیم از تابع preg_match_all استفاده کنیم :
کد بالا، هم موارد تطبیق یافته را پیدا می کند و هم عبارت پیدا شده در تگ src را به صورت یک عنصر جداگانه به ما می دهد. توصیه می کنم آن را برای یک الگوی خاص به کار ببرید (مثلا من در کد بالا، آن را برای یک کلاس خاص در نظر گرفته ام) و بعد با تابع var_dump ، مقادیر به دست آمده را چک کنید تا منظورم رو دقیق متوجه شوید :
دقت داشته باشید که برنامه نویس های مختلف، ترتیب های مختلفی برای مشخصه های تگ ها دارند، مثلا یکی در تگ a ، ابتدا مشخصه href را می گذارد و بعد مشخصه class و یک برنامه نویس دیگر، به صورت برعکس. پس این موارد را هم در نظر بگیرید.
ما ابتدا باید کد HTML خروجی صفحه را به دست آورده و در یک متغیر ذخیره کنیم. اگر صفحه بر اساس http باشد، تابع file_get_contents را به کار ببرید :
کد پیاچپی:
// به دست آوردن سورس صفحه
$page_html_source_code = file_get_contents($html_file_path);
اما برای صفحاتی که از https استفاده می کنند، کمی دردسر داریم. فکر می کنم یک کتابخانه (library) با نام curl بود که برای دریافت کدهای HTML اینگونه صفحات به کار می رفت (در مورد آن تحقیق کنید، احتمالا PHP موجود در سرور واقعی، آن را دارد، چون خودم روی نرم افزار شبیه ساز سرور روی کامپیتر شخصی تست کردم و نداشت (البته بستگی به نسخه و خود نرم افزار هم دارد)، ولی روی سرور اصلی، کتابخانه curl را داشت و کدها اجرا می شد).
بعد که کدهای HTML صفحه را به دست آوردیم (با هر کدام از آن دو روش)، می توانیم از تابع preg_match_all استفاده کنیم :
کد پیاچپی:
$matches_total_number = preg_match_all('/<img class="myClass" src="(.*?)"/', $page_html_source_code, $matches);
کد بالا، هم موارد تطبیق یافته را پیدا می کند و هم عبارت پیدا شده در تگ src را به صورت یک عنصر جداگانه به ما می دهد. توصیه می کنم آن را برای یک الگوی خاص به کار ببرید (مثلا من در کد بالا، آن را برای یک کلاس خاص در نظر گرفته ام) و بعد با تابع var_dump ، مقادیر به دست آمده را چک کنید تا منظورم رو دقیق متوجه شوید :
کد پیاچپی:
var_dump($matches);
دقت داشته باشید که برنامه نویس های مختلف، ترتیب های مختلفی برای مشخصه های تگ ها دارند، مثلا یکی در تگ a ، ابتدا مشخصه href را می گذارد و بعد مشخصه class و یک برنامه نویس دیگر، به صورت برعکس. پس این موارد را هم در نظر بگیرید.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.