رفتن به مطلب

تابع farsi_correct


Aliresalat

پست های پیشنهاد شده

کسی میدونه چطوری میشه متن رو چپ یا راست چین کرد تو این تابع؟

 

 

function farsi_correct($string){// Reverse the string$len = mb_strlen($string, 'utf-8');$result = '';    for ($i = ($len - 1); $i >= 0; $i--){ $result .= mb_substr($string, $i, 1, 'utf-8');}// These chars work as space when a character comes after them, so the next character will not connect to them$spaces_after = array('', ' ', 'ا', 'آ', 'أ', 'إ', 'د', 'ذ', 'ر', 'ز', 'ژ', 'و', 'ؤ', '?', '؟', ')', '(', '"', "'", '<', '>', '.');// These chars work as space when a character comes before them, so the previous character will not connect to them$spaces_before = array('', ' ', '?', '؟', ')', '(', '"', "'", '<', '>', '.');// Persian chars with their different styles at different positions:// Alone, After a non-space char, Before a non-space char, between two non-space chars$chars = array();$chars[] = array('آ', 'ﺂ', 'آ', 'ﺂ');$chars[] = array('أ', 'ﺄ', 'ﺃ', 'ﺄ');$chars[] = array('إ', 'ﺈ', 'ﺇ', 'ﺈ');$chars[] = array('ا', 'ﺎ', 'ا', 'ﺎ');$chars[] = array('ب', 'ﺐ', 'ﺑ', 'ﺒ');$chars[] = array('پ', 'ﭗ', 'ﭘ', 'ﭙ');$chars[] = array('ت', 'ﺖ', 'ﺗ', 'ﺘ');$chars[] = array('ث', 'ﺚ', 'ﺛ', 'ﺜ');$chars[] = array('ج', 'ﺞ', 'ﺟ', 'ﺠ');$chars[] = array('چ', 'ﭻ', 'ﭼ', 'ﭽ');$chars[] = array('ح', 'ﺢ', 'ﺣ', 'ﺤ');$chars[] = array('خ', 'ﺦ', 'ﺧ', 'ﺨ');$chars[] = array('د', 'ﺪ', 'ﺩ', 'ﺪ');$chars[] = array('ذ', 'ﺬ', 'ﺫ', 'ﺬ');$chars[] = array('ر', 'ﺮ', 'ﺭ', 'ﺮ');$chars[] = array('ز', 'ﺰ', 'ﺯ', 'ﺰ');$chars[] = array('ژ', 'ﮋ', 'ﮊ', 'ﮋ');$chars[] = array('س', 'ﺲ', 'ﺳ', 'ﺴ');$chars[] = array('ش', 'ﺶ', 'ﺷ', 'ﺸ');$chars[] = array('ص', 'ﺺ', 'ﺻ', 'ﺼ');$chars[] = array('ض', 'ﺾ', 'ﺿ', 'ﻀ');$chars[] = array('ط', 'ﻂ', 'ﻃ', 'ﻄ');$chars[] = array('ظ', 'ﻆ', 'ﻇ', 'ﻈ');$chars[] = array('ع', 'ﻊ', 'ﻋ', 'ﻌ');$chars[] = array('غ', 'ﻎ', 'ﻏ', 'ﻐ');$chars[] = array('ف', 'ﻒ', 'ﻓ', 'ﻔ');$chars[] = array('ق', 'ﻖ', 'ﻗ', 'ﻘ');$chars[] = array('ک', 'ﻚ', 'ﻛ', 'ﻜ');$chars[] = array('ك', 'ﻚ', 'ﻛ', 'ﻜ');$chars[] = array('گ', 'ﮓ', 'ﮔ', 'ﮕ');$chars[] = array('ل', 'ﻞ', 'ﻟ', 'ﻠ');$chars[] = array('م', 'ﻢ', 'ﻣ', 'ﻤ');$chars[] = array('ن', 'ﻦ', 'ﻧ', 'ﻨ');$chars[] = array('و', 'ﻮ', 'ﻭ', 'ﻮ');$chars[] = array('ؤ', 'ﺆ', 'ﺅ', 'ﺆ');$chars[] = array('ی', 'ﯽ', 'ﯾ', 'ﯿ');$chars[] = array('ي', 'ﻲ', 'ﻳ', 'ﻴ');$chars[] = array('ئ', 'ﺊ', 'ﺋ', 'ﺌ');$chars[] = array('ه', 'ﻪ', 'ﮬ', 'ﮭ');$chars[] = array('ۀ', 'ﮥ', 'ﮬ', 'ﮭ');$chars[] = array('ة', 'ﺔ', 'ﺗ', 'ﺘ');$chars[] = array(' ', ' ', ' ', ' ');$chars[] = array('0', '0', '0', '0');$chars[] = array('1', '1', '1', '1');$chars[] = array('2', '2', '2', '2');$chars[] = array('3', '3', '3', '3');$chars[] = array('4', '4', '4', '4');$chars[] = array('5', '5', '5', '5');$chars[] = array('6', '6', '6', '6');$chars[] = array('7', '7', '7', '7');$chars[] = array('8', '8', '8', '8');$chars[] = array('9', '9', '9', '9');$chars[] = array('؟', '؟', '؟', '؟');$chars[] = array('!', '!', '!', '!');$string = $result;$len = mb_strlen($string, 'utf-8');$result = array();$buffer = array();for ($i = 0; $i < $len; $i++){ $previous_char = $i > 0 ? mb_substr($string, $i - 1, 1, 'utf-8') : ''; $current_char = mb_substr($string, $i, 1, 'utf-8'); $next_char = $i < ($len - 1) ? mb_substr($string, $i + 1, 1, 'utf-8') : ''; $in_array = false; foreach ($chars as $char) {  if (in_array($current_char, $char))  {   $in_array = true;   if (!in_array($next_char, $spaces_after) && !in_array($previous_char, $spaces_before))   {    if ($current_char == ' ')    {     if (!in_farsi_array($chars, $next_char) && !in_farsi_array($chars, $previous_char))     {     $in_array = false;     }     else     {      $result[] = $char[3];     }    }    else    {     $result[] = $char[3];    }   }   elseif (!in_array($previous_char, $spaces_before))   {    $result[] = $char[2];   }   elseif (!in_array($next_char, $spaces_after))   {    $result[] = $char[1];   }   else   {    $result[] = $char[0];   }   continue;  } } if (!$in_array) {  $buffer[] = $current_char; } else {  $lastChar = array_pop($result);  $result = array_merge($result, $buffer);  $result[] = $lastChar;  $buffer = array(); } $in_array = false;}if (count($buffer))$result = array_merge($result, $buffer);return implode('', $result);}function in_farsi_array(&$farsi, $text){foreach ($farsi as $t){ if (in_array($text, $t)) return true;}return false;}    

 

 

خواستم از دایو واسه راست چین کردن استفاده کنم به این صورت <div style=direction:rtl;>

ولی این که شدنی نیست چون من از این تابع واسه چاپ متن روی عکس استفاده میکنم که باعث میشه دایو بالا هم به صورت کد روی عکس چاپ بشه

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

سلام .

 

این توابع رو نمیشه با تابع راست چین کرد . راست چین کردن رو باید از استایل و کلسی که این توابع در اونجا لود میشن راست چین کنید .

 

یا با فایل rtl.css و دستورات راست چین سازی کلی .

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

مسیح این که ربطی به استایل نداره که!

من با این تابع حروف فارسی رو واسه چاپ کردن روی عکس اماده کردم ولی حالا تنها مشکلم چپ و راست کردنشه

چپ یا راست شدن رو باید تو خود تابع نوشت

این خط کدو پیدا کردم ببینش خداوکیلی اصلا فکر نمی کردم بهش که اینطوری باشه باحاله مگه نه

 

$textbox->setBox(   50,  // distance from left edge   50,  // distance from top edge   200, // textbox width   100  // textbox height);// text will be aligned inside textbox to right horizontally and to top vertically$textbox->setTextAlign('right', 'top');

 

فقط از ظهر درگیرشم نمیدونم چرا نمیشه

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

ببین منظرم از چاپ روی عکس خود چاپ شدن روی عکس ها متن روی عکس شناور نیست که کلا پرس میشه به عکس

واسه همین به استایل کاری نداره

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

فکر می کردم یک تابع جهت چاپ متن روی یک برگه به صورت تابع هست چون قبلا چنین چیزی دیده بودم .

 

اما این یکی رو باهاش کار نکرده بودم .

 

حالا خودتون یک خط دادین که Algin متن رو مشخص می کنه . خوب همون می تونه کار رو راه بیندازه :

 

$textbox->setTextAlign('right', 'top');

 

 

که البته کد زیر رو هم باید عددش رو کمتر از 20 بزارید »

 

 

   50,  // distance from left edge

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

همون امتحانش کردم بازم نشد حالا میدونی کجا گیر کردم یه قسمت از امارگیرم که میخوام عکس پس زمینه بسازم واسه امارگیر

نمیدونم چرا کار نمیکنه یه چند جا دیگه هم نوشتم مشکلم رو ببینم اخرش کی جوابو میده

راستی مسیح یه سرم به سایت بزم ببین چطوره عیب نگیر ازش چون خودت میدونی ساختن امارگیر واقعا ریزکاری زیاد داره لینک ها تنها برای اعضای سایت قابل نمایش است.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای سایتت . چند تا ویرایش هست که میگم در صورت تمایل اعمالش کن . این کدها اصلاح شده هستند :

 

 

#menu A {   text-align: center;   line-height: 45px;   width: 100px;   display: block;   letter-spacing: 1;   height: 38px;   color: #454545;   font-size: 14px;}

 

 

 

.w-220 H2 {   position: relative;   line-height: 31px;   padding-left: 56%;   background: transparent url("images/bg_01.gif") no-repeat scroll 0px 0px;   height: 31px;   overflow: hidden;}

 

 

 

.w-730 H2 {   position: relative;   line-height: 31px;   padding-left: 87%;   background: transparent url("images/bg_01.gif") no-repeat scroll 0px 0px;   height: 31px;   overflow: hidden;}

 

 

 

input, textarea {   border: 4px solid rgb(255, 255, 255);   box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.1) inset, 0px 0px 16px rgba(0, 0, 0, 0.1);   padding: 15px;   background: rgba(255, 255, 255, 0.5) none repeat scroll 0% 0%;   margin: 0px 0px 10px;   width: 95% !important;}

 

 

 

برای پس زمینه هم دقیقا کجای آمارگیر هست ؟ چون چند نوع و چند مدل میشه این کار رو انجام داد .

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

بابا والله کارت درسته خداوکیلی مردی

ایوالا به این دست به کارت خیلی خوشم اومد دستت درد نکنه

واقعا تکمیلش کرد استایل رو

لایک به وجودت :)

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

به جز اون منوی بالا فکر می کردم این طوری قشنگه جدا از هم ولی نه حالا بهتر شد

فقط اون منو های کناری به نظرم قشنگ نبودن که دیگه ویرایش کردی دیگه همینجور میذارم بمونه عوض نمیکنم

اون input هم فکر نمی کردم عریض کردنش انقدر خوب بشه

دستت درد نکنه

میگن کار رو به کاردان پسپار اینه ها

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

فدات داداش موفق باشی .

 

در مورد اون پس زمینه یک قسمت از سایت هم یک تاپیک جداگانه ایجاد کنی بهتره .

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

میدونی منظورم از پس زمینه چیه

یه عکس در نظر بگیر خوب اون امار مثلا تعداد بازدید امروز دیروز .... روی عکس چاپ میشن خوب

کاربر تو پنل کاربریش میتونه از میونه پس زمینه ها هر پس زمینه ای دوست داشت انتخاب کنه که به رنگ سایتش بیاد

یا حتا خودش یه پس زمینه اپلود کنه واسه پس زمینه امار گیرش یا نه اصلا نداشته باشه

راستی اینجا جای این بحث نبود ولی پایین سایت رو ببین ایکون امارگیر!

روش کلیک کن این مدلی هم قسمت تبلیغات درست کردم که بعد از 10 ثانیه میره تو پروفایل کاربر یه تست کن باشه حتما یه تاپیک میزنم

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

ببخشد من اسپم دارم میکنم دیگه شرمنده

دیگه من طراح قااب نیستم واسه همین ضعیفم تو این کار

این فوترم ببین درست میکنی واسم بچسپه به پایین صفحه

لینک ها تنها برای اعضای سایت قابل نمایش است.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
×
×
  • اضافه کردن...