مشاهده نسخه کامل
: طرز به دست آوردن یک رشته بین دو رشته دیگر PHP
M o h a m m a d
19-06-2009, 11:36
سلام !
:20:
تو PHP چجـــوری میشه یک رشته ای که بین دو رشته معین دیگه قرار داره رو به دست آورد !؟
برای مثال :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می خوام چیزی که بین <g1> و <g2> قرار داره رو توی یک متغیر بیارم ...
مــمنون میشم راهنمایــــی کنید ...
چند تایی تابع هست کارشون اینه من زیاد استفاده نکردم
از عبارات منظم هم میتونی استفاده کنی
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
M o h a m m a d
19-06-2009, 15:29
میشه بیشتر توضیح بدی ؟
با عبارت منظم چجوری میشه ؟
خب یه الگو براش مشخص میکنی که عبارت بین اون تا تگ رو بدست بیاره
مثلا
من یه رشته به صورت زیر دارم:
Wiley | English | 2009-06-09 | ISBN: 0470193417 | 272 pages | PDF | 5,3 MB
حالا میخوام با regex در php فقط قسمت 5,3 MB رو ازش دربیارم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدتو کد بالا اومده عبارتی رو که به " | " ختم میشه رو جدا کنه و تو آرایه $components بریزه اینطوری رشته به 7 قسمت تقسیم میشه که آخریش [6] همونی که میخوایم
طرز الگو نویسی رو اگه بلد باشی میتونی طوری بنویسی که اون چیزی میخای رو بدست بیاری
مثلا شما
<g1>Hello<g2> رو داری
>Hello< رو میخای یعنی عبارتی که بین >و< قرار داره فکر نمیکنم زیاد سخت باشه
تابع explod هم هست که البته نمیدونم به کاره شما میاد یا نه
طرز کارش اینه که یه رشته رو میشکونه و میریزه تو آرایه حالا اون نقطه شکست یه چیزی که خودمون تعیین میکنیم مثلا علامت |
مثلا
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
neopersia
19-06-2009, 20:12
سلام !
:20:
تو PHP چجـــوری میشه یک رشته ای که بین دو رشته معین دیگه قرار داره رو به دست آورد !؟
برای مثال :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می خوام چیزی که بین <g1> و <g2> قرار داره رو توی یک متغیر بیارم ...
مــمنون میشم راهنمایــــی کنید ...
اگر استرینگ به همین سادگیه این الگو باید کار کنه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
M o h a m m a d
20-06-2009, 09:17
ممنون از همگی !
مثلا شما
<g1>Hello<g2> رو داری
>Hello< رو میخای یعنی عبارتی که بین >و< قرار داره فکر نمیکنم زیاد سخت باشه
تابع explod هم هست که البته نمیدونم به کاره شما میاد یا نه
می خواستم توی یک صفحه HTML این تگ رو در بیارم !
شما خودت بهتر می دونی توی یک صفحه هزار تا >.*< وجود داره !
Explode هم فقط با یک حرف جدا می کنه مثلاً بین دو تا , ---- , من می خوام بین دو تا حرف که یکی نیستن این کارو بکنم
اگر استرینگ به همین سادگیه این الگو باید کار کنه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من این رو تست کردم ولی جوابی که گرفتم این بود : با همون print_r
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اصلاً من نمی دونم print_r چیه ؟!! با print که میزنم میگه Array ... در حالی که من اندیس آرایه رو بهش دادم !
print_r برایه چاپ مقادری آرایه به کار برده میشه اگه میخای با print بنویسی اول بریز تویه آرایه مثل اولین مثالی که برات زدم اونو نگا تا متوجه بشی
neopersia
20-06-2009, 09:32
print_r برای آرایه ها نام کلید و مقدار اون رو برای هر عضو آرایه چاپ میکنه
res$ که توی preg_match_all استفاده شده شامل همه قسمتهایی میشه که با الگو مچ میشن! (که یک آرایه هست)
[1]res$ که توی print_r استفاده شده شامل همه قسمتهایی میشه که با قسمتهای داخل پرانتز در الگو مچ شده. یعنی همون چیزی که شما لازم دارید. مقدار این عضو هم یک آرایه هست چون ممکنه تعداد بیشتری از این مچ ها وجو داشته باشه
برای اینکه ازش استفاده کنید میتونید با for یا foreach لوپ کنید و همه مقدار ها رو بگیری یا اینکه مستقیماً اندیس آرایه ها رو بدید و مقدارش رو بگیرید. مثلاً اگر یک گزینه داشته باشید که با الگو مچ بشه میتونید به این صورت مقدارشو به دست بیارید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
M o h a m m a d
20-06-2009, 09:51
خیلــــــــــــی ممنون !
مشکل با همین دومی حل شد !!
ممنون از شما neopersia و MAXXX !!!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
M o h a m m a d
24-06-2009, 09:13
یک مشکل دیگه !
من می خوام این کار رو بین کدهای HTML انجام بدم !
یعنی یک سری کد HTML دارم بینش <g>Hello</g> ــه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
neopersia
24-06-2009, 11:13
خوب بازم فرق نمیکنه باید همون کد قبلی کار کنه!
neopersia
24-06-2009, 11:38
البته اگر بین دو تا تگ <g> و </g> سطر جدید وجود داشته باشه اون کد قبلی کار نمیکنه باید از این استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر هم قرار نباشه که سطرهای جدید توی نتیجه جفت یابی بشن میشه از این استفاده کرد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
M o h a m m a d
24-06-2009, 18:15
ما که کلاً مقوله عبارات منظم رو نفهیمدیم جز توی ereg !
یه تابع پیدا کردم که این کار رو انجام میده بدون عبارات منظم !
الآن دم دستم نیست تا فردا تو همین تاپیک میزارمش
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.