PDA

View Full Version : کمک در نوشتن Pattern تابع preg_match_all در PHP



sina_saeedi82
پنج شنبه 08 بهمن 1388, 16:34 عصر
دوستان من میخوام تو وردپرس برای پیدا کردن یه الگوی خاص توی متن از تابع preg_match_all استفاده کنم.
اما متاسفانه هرکاری کردم نتونستم Pattern مورد نظرم رو بنویسم.
میخواستم ببینم کسی میتونه کمک کنه؟ ;)
الگوی مورد نظرم اینه:

http://www.mydomain.com/radio/x.mp3
و
http://www.mydomain.com/multimedia/x.flv


اون x هم که گذاشتم یه اسم شامل

A-Z, a-z, 0-9, _, -
هستش.

sina_saeedi82
پنج شنبه 08 بهمن 1388, 19:26 عصر
preg_match('/http:\/\/[A-Za-z0-9.]+\/[A-Za-z]+\/[A-Za-z0-9-_.]+/', $str, $matches);
حل شد.
با راهنمایی که مهدی لینک داده بود اینو نوشتم و جریان یه کم تغییر کرد و نیازی به قسمتای [podcast] نشد.
ولی تو 1 فوروم اینگلیسی این جواب رو بهم دادن که این در نوع خودش جالبه:



Start easy. First, find content between [podcast] tags. Remember to use a backslash to escape brackets and slashes:

/\[podcast\](.*?)\[\/podcast\]/



From there, you could use `pathinfo` in php 5.2:

print_r(pathinfo("http://www.mydomain.com/radio/x.mp3"));
Array
(
[dirname] => http://www.mydomain.com/radio
[basename] => x.mp3
[extension] => mp3
[filename] => x
)



If you would rather use a regex to do it in all one step, insert a pattern to match everything between the last slash and last dot. You can use the exact ranges you gave:

\/([A-Za-z0-9_-]+)\.[A-Za-z0-9]+$

d68715
چهارشنبه 14 مهر 1395, 11:58 صبح
حالا تفاوت آپشن ها یعنی i m x U s و غیره در چی هست. (http://grease-trap.ir/)مخصوصا در preg_match و preg_match_all

مرسی. (http://payasite.ir/urmia)