نقل قول: Reqular Expression
ereg مال php قدیمی هست و اصلا دیگه توصیه نمیشه
به جاش از preg_match استفاده کنید
<?php
$url="http://www.funpatogh.com";
$html=file_get_contents($url);
if(preg_match('/<title>(.*)<\/title>/si', $html ,$Match ) ) {
echo $Match[1];
}
?>
نقل قول: Reqular Expression
پس با اين وجود از همون شيوه perl استفاده كنم چون اين و توابع براي perl هستش
(.*?)
نقطه براي اينه كه با كليه عبارات تطبيق داره و ميتونه هر چيزي رو نشون بده
ستاره يعني اون عبارت قبلي(معادل نقطه) ميتونه باشه يا نباشه
علامت سوال هم يعني مقادير داخل پرانتز اختياري هستن
ولي بازم درست متوجه نشدم
پرانتر ها هم براي اينه كه روي كلاس قبلي خود تاثير نذارن
و در مورد تگها هم بگين آيا در تعريف كلاسها در هنگام چاپ تگها به حساب نمي يان
و در مورد اون si هم بگين
نقل قول: Reqular Expression
اون علامت سوال زیاد بود
. یعنی هرکاراکتری می تواند ظاهر شود و * به این معناست که قبل از آن می تواند 0 یا بیشتر بار تکرار شود
i به این معنیست که بین حروف کوچک و بزرگ فرقی قایل نشود
s هم به این معنیست که فضای خالی هم میتواند داشته باشد
این s رو برای اینکه بهتر متوجه بشید این مثال رو اجرا کنید
<?php
$html="<title>
funpatogh
</title>";
if(preg_match('/<title>(.*)<\/title>/i', $html ,$Match ) ) {
echo $Match[1];
}else{
echo "no";
}
?>
و بعد s بگزارید و دوباره تست کنید تا نیجه رو ببینید
نقل قول: Reqular Expression
سلام
سوال دارم
اگر تگ بسته <title/> تو یه خط دیگه باشه چیکار باید کرد؟چون نقطه "." بجای newline قرار نمی گیره.:افسرده:
نقل قول: Reqular Expression
توی مثال دوم که بنده زدم همون طور که میبینید </title> توی خط 4 هست و تگ شروعش در تگ 2 پس توی یک خط نیستند و از
'/<title>(.*)<\/title>/si'
استفاده شده است