View Full Version : حرفه ای: تفسیر یک فایل
binyaft
دوشنبه 12 مهر 1389, 16:09 عصر
سلام دوستان
من دارم یه برنامه ای با php مینویسم که یه قسمتش نیاز داره که یه فایل رو تفسیر کنه
مثلا فایل رو باز میکنه و وقتی به دستور write رسید هر چی جلوی write بود رو میریزه داخل یه متغیر
خودم با regex تا یه جا هایی رفتم اما میخوام بدونم راهی بهتر و یا شاید سریعتر از regex وجود داره یا نه :متفکر:
ممنون
binyaft
دوشنبه 12 مهر 1389, 16:21 عصر
کسی نیست کمک کنه!!!! :(
snail22
دوشنبه 12 مهر 1389, 16:34 عصر
بهتره تا جایی که میشه از توابع string مثل explode implode substr strpos استفاده کنی
اگه نشد با regular expression
binyaft
دوشنبه 12 مهر 1389, 16:38 عصر
ممنون از پاسخ
ولی میخوام بدونم ایا راه دیگری بجز اینها هست یانه
در ضمن اگر بخوام یک کلمه رو طوری پیدا کنم که بین " " یا ' ' نباشه در regex باید چکار کنم ؟؟
[^"'](.*?)[^"']
این پترن بالایی کار نمیده
ممنون
binyaft
دوشنبه 12 مهر 1389, 17:30 عصر
نه کار نمیکنه :گریه:
snail22
دوشنبه 12 مهر 1389, 17:35 عصر
ببخشید pattern قبلی رو از خودم در آوردم! فکر کردم کلاس quote هم داریم که نداریم!
این pattern درسته
[\'"]([^\'"]*)[\'"]
binyaft
دوشنبه 12 مهر 1389, 17:46 عصر
خواهش میکنم
من کد زیر رو اجرا میکنم
preg_match_all('/[\'"]([^\'"]*)[\'"]/','write',$match);
print_r($match);
write رو وقتی میاره که اول و اخرش " و ' باشه
وقتی هم که اول هر کلاس ^ رو میذارم که کلاس رو منفی کنم باز هم نمیشه!!!!!
نمیدونم چکار کنم!
snail22
دوشنبه 12 مهر 1389, 18:03 عصر
فکر نمیکنم بشه مستقیم این کار رو کرد
ولی میتونی با preg_replace و این پترن من داخل کوتیشن ها رو حذف کنی
binyaft
دوشنبه 12 مهر 1389, 18:09 عصر
خوب شما همون غیر مستقیمشو راهنمایی کنید :D
sama01
دوشنبه 12 مهر 1389, 18:34 عصر
میشه مثال بزنید.
دقیقا چی میخواهید؟
binyaft
دوشنبه 12 مهر 1389, 18:53 عصر
میخوام یه قسمتی از یک فایل که نوشته write ، هر چیزی که جلوی این عبارت بود بریزه داخل متغییر $var فقط باید write باشه و نباید اولش و اخرش " و یا ' باشه من کلاس هارو منفی میکنم به صورت زیر
[^"]write
حالا اگر نوشته بشه
"write
قبول نمیکنه یعنی تا اینجا درسته اما وقتی قبول میکنه که به صورت زیر باشه
a write
یعنی write رو زمانی قبول میکنه که یک کاراکتر قبلش باشه در غیر اینصورت اصلا نمیشناسه!!!
snail22
دوشنبه 12 مهر 1389, 19:26 عصر
خوب زودتر اینو میگفتی دیگه!
شما در پترن باید اون syntax که میخواهید باشه رو تعریف کنید نه اون چیزی که نباید باشه
preg_match('/^[^"\']write\s(.*)$/i','&write some text to file',$m);
print_r($m);
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.