کلیدستان

نسخه‌ی کامل: عبارت منظم .. (در PHP)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام مدیریت ..
عبارت منظم رو میشه در مورد  صفحه ای نوشت که دارای صد عکس است ..
بیاد جست وجو کنه مثلا ادرس تصاویر اینجوری باشه ..
http://aks1.mysait.com/r.jpg
بعد که  لینک تصویر رو پیدا کرد با عبارت منظم اون را چاپ کنه در خروجی
و فهرستی از کل تصاویر که پیدا کرده با این شکل منظم نمایش بده
یعنی خروجی اینجوری بشه ..
http://aks1.mysait.com/r.jpg
http://aks2.mysait.com/r.jpg
~~http://sdfhhs.mysait.com/r.jpg
~~http://akjs843.mysait.com/r.jpg
~~http://dfkjasjd784.mysait.com/r.jpg
~~http://dfgkdf8.mysait.com/r.jpg
~~http://fgk488.mysait.com/r.jpg
ممنون ..
سلام.
ما ابتدا باید کد 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 و یک برنامه نویس دیگر، به صورت برعکس. پس این موارد را هم در نظر بگیرید.

بسیار عالی .. و خوب مثل همیشه ...
ممنون ..
سلام من هادی هستم میشه خودتونو معرفی کنید و بگید که کدنویسی بلدید یا نه؟
(۱۳۹۳/۱۱/۰۳, ۱۲:۲۸ ب.ظ)'php programer' نوشته: [ -> ]سلام من هادی هستم میشه خودتونو معرفی کنید و بگید که کدنویسی بلدید یا نه؟

 
man ?