برگزیده های پرشین تولز

قرار دادن چند خط کد بین کلمات یک Entry

میلاد

کاربر فعال
کاربر فعال
تاریخ عضویت
7 ژوئن 2005
نوشته‌ها
1,810
لایک‌ها
4
سن
38
محل سکونت
Esfahan
به نقل از azizaa :
this is the solution using mt-regex plugin by brad choate.
it wasn't that much hard guys!
کد:
<MTRegexDefine name="aziz">s|(.{200})|$1 somthing added by you</MTRegexDefine>
<$MTEntryBody regex="1"$>

من که فقط میتونم بگم خدای ام تی ایران "عزیز جان"...!
میدونی عزیز جان من الان چند روزه دارم رو Regex کار می کنم برای قرار دادن شکلک های یا هو توی ام تی نمی دونم چرا به فکر خودم نرسید...
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
به نقل از azizaa :
this is the solution using mt-regex plugin by brad choate.
it wasn't that much hard guys!
کد:
<MTRegexDefine name="aziz">s|(.{200})|$1 somthing added by you</MTRegexDefine>
<$MTEntryBody regex="1"$>

خیلی خیلی ممنون
کارم راه افتاد ولی دیفاین اولیه یه اشکال کوچیک داره که شکل صحیحش رو با اجازه اینجا میزارم:
کد:
<MTRegexDefine name="aziz">s|(.{200})|$1 somthing added by you|</MTRegexDefine>
انتخاب این پلاگین نشون میده خیلی خیلی باهوشی!
این پلاگین برای این کار ساخته نشده... شکل استفاده ازش خیلی هوشمندانه بود... بازم ممنون
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
یه موردی که کد بالا داره میاد کد رو بعد از کاراکتر 200 قرار میده نه کلمه 200
برای حل این مشکل باید چه کرد؟؟؟
 

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
آقا يكي مي‌شه اين كدي رو كه عزيز خان نوشت رو تفسير كنه؟
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
به نقل از azemati :
آقا يكي مي‌شه اين كدي رو كه عزيز خان نوشت رو تفسير كنه؟
این پلاگین regex پلاگین جالبیه...
یکی از کارایی که میشه باحاش کرد مثلا گذاشتم اسمایل تو متنه
شما میتونید از کاراکترهای استاندارد برای اسمایلها مثل : :) :D و ... تو متن استفاده کنید بعد بیاید با MTRegexDefine اینها رو تعریف کنید مثلا هر جا که تو متن به : D برخورد کرد به جاش تصویر :D رو بزاره اونوقت تعرفش اینجوریه:
کد:
<MTRegexDefine>s|:-D|<img src="/images/smiley.gif" height="32" width="32">|g</MTRegexDefine>
صدا زدنش تو Entry هم اینجوریه:
<$MTEntryBody regex="1"$>
در این صورت موقع پابلیش شدن پست ام تی اول کل متن رو میگرده و اگه به : D برخورد کرد به جاش
<img src="/images/smiley.gif" height="32" width="32">
رو میزاره
حالا خودت فکر کن با یه همچین پلاگینی چه ها که نمیشه کرد
موردی که من اصلا تو readme فایل این پلاگین ندیدم همین تعریف .{200} بود! نمیدونم عزیز از کجا اینو آورده ولی کار می کنه یعنی دقیقا میره مورد رو اضافه میکنه بعد از کاراکتر 200
حالا من نمیدونم چطور میشه این کاراکتر رو به کلمه تبدیل کرد!:wacko:
 

azizaa

مدیر بازنشسته
تاریخ عضویت
16 نوامبر 2004
نوشته‌ها
422
لایک‌ها
0
به نقل از setareh2 :
یه موردی که کد بالا داره میاد کد رو بعد از کاراکتر 200 قرار میده نه کلمه 200
برای حل این مشکل باید چه کرد؟؟؟

كد بالا رو به شكل زير اصلاح كن:

کد:
<MTRegexDefine name="aziz">s|(\s{199})|$1 somthing added by you|</MTRegexDefine>

در ضمن دوستان لطف دارن! اينا چيزاي عجيب غريبي نيست فقط يكمي بازي كردن با Perl Regular Expression ه!

در ضمن قبلا همين جا اندر باب اهميت Regex نوشته بودم!
http://forum.persiantools.com/showthread.php?t=16521

http://forum.persiantools.com/showpost.php?p=173159&postcount=4
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
به نقل از azizaa :
كد بالا رو به شكل زير اصلاح كن:

کد:
<MTRegexDefine name="aziz">s|(\s{199})|$1 somthing added by you|</MTRegexDefine>

در ضمن دوستان لطف دارن! اينا چيزاي عجيب غريبي نيست فقط يكمي بازي كردن با Perl Regular Expression ه!

در ضمن قبلا همين جا اندر باب اهميت Regex نوشته بودم!
http://forum.persiantools.com/showthread.php?t=16521

http://forum.persiantools.com/showpost.php?p=173159&postcount=4
این که کار نمی کنه...
این منبع رو پیدا کردم بخونم ببیم سر در میارم:
http://virtual.park.uga.edu/humcomp/perl/regex2a.html
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
کلی ور رفتم باهاش
بیشتر از 3 ساعت وقت گذاشتم این metacharacter \s یا \b باید جواب بده ولی نمیده:( !
 

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
ممنون از توضيحات. همون‌طوري كه خود عزيز گفت، قبلا در مورد اين پلاگين توضيحات داده بود. خيلي پلاگين رديفيه ... مثلا قبلا خود عزيز يه كدي واسه اعداد فارسي در صفحه نوشته بود با كمك همين پلاگين!
 

aaber_piade

Registered User
تاریخ عضویت
19 دسامبر 2002
نوشته‌ها
1,660
لایک‌ها
25
سن
40
محل سکونت
Tehran
راستش من با اين که قبلا با اين پلاگين کار کرده بودم اما الان هرچي روي 3.2 سعي ميکنم استفاده کنم فايده نداره، يعني نه کد اولي رو اعمال ميکنه و نه دومي. نمي دونم کجا رو دارم اشتباه مي کنم.

مغزم داره سوت مي کشه ديگه الان!
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
[فکر کنم به یه روش دیگه یا به خود عزیز آقا نیازه تا این مسئله حل بشه....
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
به نقل از setareh2 :
[فکر کنم به یه روش دیگه یا به خود عزیز آقا نیازه تا این مسئله حل بشه....
نزارید این تاپیک بخوابه لطفا":(
 

azizaa

مدیر بازنشسته
تاریخ عضویت
16 نوامبر 2004
نوشته‌ها
422
لایک‌ها
0
why don't you try this​
کد:
<MTRegexDefine name="aziz">s|(.{400}[^ ])|$1 something added by you</MTRegexDefine>
<$MTEntryBody regex="1"$>

it will ignore the first 400 characters, then it will search for the first space character and add your custom data after that space. I hope that this one works​
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
به نقل از azizaa :
why don't you try this​
کد:
<MTRegexDefine name="aziz">s|(.{400}[^ ])|$1 something added by you</MTRegexDefine>
<$MTEntryBody regex="1"$>

it will ignore the first 400 characters, then it will search for the first space character and add your custom data after that space. I hope that this one works​
عزیز جان
ممنون اتفاقا من این رو هم امتحان کردم
اگه تو entry هیچ جا enter نزده باشیم کار می کنه و بدون هیچ مشکلی هم هست
منتها اگر تو متن enter استفاده کرده باشیم این فیلتر enter ها رو به شکل کاراکتر نمیبینه (حتی وقتی از Meta Character مثل s هم استفاده کنیم!) و به پاراگراف بعدی میره و تو اونجا دنبال 400 کاراکتر میگرده!!!!
یعنی اگه entry ما از 100 پاراگراف 300 کاراکتری و یه پاراگراف 410 کاراکتری در انتهای entry تشکیل شده باشه این میره "something added by you" رو تو پاراگراف آخر قرار میده:blink:
 

azizaa

مدیر بازنشسته
تاریخ عضویت
16 نوامبر 2004
نوشته‌ها
422
لایک‌ها
0
به نقل از setareh2 :
عزیز جان
ممنون اتفاقا من این رو هم امتحان کردم
اگه تو entry هیچ جا enter نزده باشیم کار می کنه و بدون هیچ مشکلی هم هست
منتها اگر تو متن enter استفاده کرده باشیم این فیلتر enter ها رو به شکل کاراکتر نمیبینه (حتی وقتی از Meta Character مثل s هم استفاده کنیم!) و به پاراگراف بعدی میره و تو اونجا دنبال 400 کاراکتر میگرده!!!!
یعنی اگه entry ما از 100 پاراگراف 300 کاراکتری و یه پاراگراف 410 کاراکتری در انتهای entry تشکیل شده باشه این میره "something added by you" رو تو پاراگراف آخر قرار میده:blink:


Oh my god! why don't you mention this earlier!
it's just because I've forgotten to put this shit "m" at the end of RE
just try this:​

کد:
<MTRegexDefine name="aziz">s|(.{400}[^ ])|$1 something added by you|m</MTRegexDefine>
<$MTEntryBody regex="1"$>

or even the previous one will work by adding this m at the end! because the syntax is correct
کد:
<MTRegexDefine name="aziz">s|(\s{199})|$1 something added by you|m</MTRegexDefine>
<$MTEntryBody regex="1"$>
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
به نقل از azizaa :

Oh my god! why don't you mention this earlier!
it's just because I've forgotten to put this shit "m" at the end of RE
just try this:​

کد:
<MTRegexDefine name="aziz">s|(.{400}[^ ])|$1 something added by you|m</MTRegexDefine>
<$MTEntryBody regex="1"$>

or even the previous one will work by adding this m at the end! because the syntax is correct
کد:
<MTRegexDefine name="aziz">s|(\s{199})|$1 something added by you|m</MTRegexDefine>
<$MTEntryBody regex="1"$>
همچنان مثل قبل!
عجب ماجرایی شده!
درست نشد:( بازم پاراگراف آخر میزاره!
 

setareh2

Registered User
تاریخ عضویت
24 ژانویه 2005
نوشته‌ها
649
لایک‌ها
2
سن
45
محل سکونت
OC
ترو خدا نزارید این تاپیک بخوابه!
تا اینجا برای entry هایی که توی n کاراکتر اولش enter استفاده نشده باشه تونستیم تو اولین space بعد n امین کاراکتر بیایم هر کدی خواستیم اضافه کنیم.
این خیلی خوبه ولی اگه entry ما تو n کاراکتر اول enter داشته باشه میره تو پاراگراف بعدی!
و اگه کل entry از بی نهایت پاراگراف که هر پاراگراف کمتر از n کاراکتر تشکیل شده باشه کد ما اصلا هیچ جایی نمایش داده نمیشه!
اگه بشه این مشکل رو حل کرد یا یه جوری حالی کرد که کد رو بعد n کلمه (نه کاراکتر) بعدی قرار بده مشکل کاملا حل میشه.
 

azizaa

مدیر بازنشسته
تاریخ عضویت
16 نوامبر 2004
نوشته‌ها
422
لایک‌ها
0
I still wonder why it is not working! maybe it's better to ask it in a PERL forum, I'm sure there you can find geeks who are more experienced in Regex than me!
 
بالا