این یکی معجزه می کنه :
$subject = `curl http://google.com/`; $reg_exp = "/href.*?\"(?.*?)\/"; preg_match_all($reg_exp, $subject, $matches); var_dump($matches);
حالا مرحله به مرحله پیش میرم:
curl http://google.com
cURL یک برنامه یونیکسی فوق العاده کاربردی هست که همه توقعی می شه ازش داشت، اما اینجا فقط محتوای آدرس گوگل رو دانلود می کنه و در متغیر $subject قرار میده.
?*.href
یعنی هر وقت به href رسیدی از اون به بعد اونقدر ادامه بده تا برسی به اولین کاراکتر بعد از علامت سوال.
/”\(?*.<href>?)”\
حالا می بینه که کاراکتر بعد از علامت سوال ” هست اینجا صبر می کنه، به پرانتز نگاه می کنه، می فهمه که باید یک گروه تشکیل بده پس علامت سوال بعدی بهش میگه که اسمشو بزار href و هرچی توش بود رو برای گروه برگردون و برو جلو تا برسی به اولین ” و بعد هم تمام.
preg_match_all
یک تابع پی اچ پی هست که برای استفاده از عبارات منظم استفاده می شه از یک طرف عبارت منظم و رشته رو می گیره از طرفی در یک متغیر به صورت آرایه ذخیره می کنه.
var_dump
یک تابع برای نشان دادن ساختار یک متغیر هست.