نمایش نتایج: از شماره 1 تا 10 , از مجموع 10

موضوع: این تابع چه بلایی سر رشته میاره؟

  1. #1
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    Question این تابع چه بلایی سر رشته میاره؟

    سلام بر دوستان و بزرگان انجمن

    یک تابع دارم به شکل زیر:

    کد PHP:
    function clear_string($str) {
    $clear_text = htmlentities($str, null, 'UTF-8');
    $clear_text = str_ireplace([' ','‌'], [' ', ' '], $clear_text);
    $clear_text = preg_replace('/&#?[a-z0-9]+;/i', '', $clear_text);
    $clear_text = html_entity_decode($clear_text);
    $clear_text = preg_replace('/\s+/', ' ', $clear_text);
    $clear_text = trim($clear_text);
    return 
    $clear_text;} 
    میخوام شما بگید به شکل مرحله به مرحله داره رو متنی که گرفته چه عملیاتی رو پیاده میکنه؟

    تشکر
    ویرایش توسط mehran-b : August 12th, 2017 در ساعت 20:13

  2. # ADS




     

  3. #2
    عضو انجمن starting آواتار ها
    تاریخ عضویت
    Jul 2015
    محل سکونت
    6346cc631627632
    نوشته ها
    255
    تشکر تشکر کرده 
    612
    تشکر تشکر شده 
    376
    تشکر شده در
    245 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    htmlentities
    PHP str_ireplace Function

    preg_match in php tutorial

    html_entity_decode

    trim هم اسپیس ها رو از دو طرف استرینگ برمیداره

    کلا کار مسخره ای کرده
    از این استفاده کنید
    کد PHP:
    function test_input($data) {
      
    $data = trim($data);
      
    $data = stripslashes($data);
      
    $data = htmlspecialchars($data);
      return 
    $data;
      } 
    موارد زیر هم Entity های استفاده شده در تابع خودتون
    Char Dec Hex Entity Name
      8192 2000 EN QUAD
      8193 2001 EM QUAD
      8194 2002   EN SPACE
      8195 2003   EM SPACE
      8196 2004 THREE-PER-EM SPACE
      8197 2005 FOUR-PER-EM SPACE
      8198 2006 SIX-PER-EM SPACE
      8199 2007 FIGURE SPACE
      8200 2008 PUNCTUATION SPACE
      8201 2009   THIN SPACE
      8202 200A HAIR SPACE
    ​ 8203 200B ZERO WIDTH SPACE
    ‌ 8204 200C ‌ ZERO WIDTH NON-JOINER
    ‍ 8205 200D ‍ ZERO WIDTH JOINER
    ‎ 8206 200E ‎ LEFT-TO-RIGHT MARK
    ‏ 8207 200F ‏ RIGHT-TO-LEFT MARK
    ‐ 8208 2010 HYPHEN
    ‑ 8209 2011 NON-BREAKING HYPHEN
    ‒ 8210 2012 FIGURE DASH
    – 8211 2013 – EN DASH
    — 8212 2014 — EM DASH
    ― 8213 2015 HORIZONTAL BAR
    ‖ 8214 2016 DOUBLE VERTICAL LINE
    ‗ 8215 2017 DOUBLE LOW LINE
    ‘ 8216 2018 ‘ LEFT SINGLE QUOTATION MARK
    ’ 8217 2019 ’ RIGHT SINGLE QUOTATION MARK
    ‚ 8218 201A ‚ SINGLE LOW-9 QUOTATION MARK
    ‛ 8219 201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
    “ 8220 201C “ LEFT DOUBLE QUOTATION MARK
    ” 8221 201D ” RIGHT DOUBLE QUOTATION MARK
    „ 8222 201E „ DOUBLE LOW-9 QUOTATION MARK
    ‟ 8223 201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
    † 8224 2020 † DAGGER
    ‡ 8225 2021 ‡ DOUBLE DAGGER
    • 8226 2022 • BULLET
    ‣ 8227 2023 TRIANGULAR BULLET
    ․ 8228 2024 ONE DOT LEADER
    ‥ 8229 2025 TWO DOT LEADER
    … 8230 2026 … HORIZONTAL ELLIPSIS
    ‧ 8231 2027 HYPHENATION POINT
    
 8232 2028 LINE SEPARATOR
    
 8233 2029 PARAGRAPH SEPARATOR
    ‪ 8234 202A LEFT-TO-RIGHT EMBEDDING
    ‫ 8235 202B RIGHT-TO-LEFT EMBEDDING
    ‬ 8236 202C POP DIRECTIONAL FORMATTING
    ‭ 8237 202D LEFT-TO-RIGHT OVERRIDE
    ‮ 8238 202E RIGHT-TO-LEFT OVERRIDE
      8239 202F NARROW NON-BREAK SPACE
    ‰ 8240 2030 ‰ PER MILLE SIGN
    ‱ 8241 2031 PER TEN THOUSAND SIGN
    ′ 8242 2032 ′ PRIME
    ″ 8243 2033 ″ DOUBLE PRIME
    ‴ 8244 2034 TRIPLE PRIME
    ‵ 8245 2035 REVERSED PRIME
    ‶ 8246 2036 REVERSED DOUBLE PRIME
    ‷ 8247 2037 REVERSED TRIPLE PRIME
    ‸ 8248 2038 CARET
    ‹ 8249 2039 ‹ SINGLE LEFT-POINTING ANGLE QUOTATION MARK
    › 8250 203A › SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
    ※ 8251 203B REFERENCE MARK
    ‼ 8252 203C DOUBLE EXCLAMATION MARK
    ‽ 8253 203D INTERROBANG
    ‾ 8254 203E ‾ OVERLINE
    ‿ 8255 203F UNDERTIE
    ⁀ 8256 2040 CHARACTER TIE
    ⁁ 8257 2041 CARET INSERTION POINT
    ⁂ 8258 2042 ASTERISM
    ⁃ 8259 2043 HYPHEN BULLET
    ⁄ 8260 2044 ⁄ FRACTION SLASH
    ⁅ 8261 2045 LEFT SQUARE BRACKET WITH QUILL
    ⁆ 8262 2046 RIGHT SQUARE BRACKET WITH QUILL
    ⁇ 8263 2047 DOUBLE QUESTION MARK
    ⁈ 8264 2048 QUESTION EXCLAMATION MARK
    ⁉ 8265 2049 EXCLAMATION QUESTION MARK
    ⁊ 8266 204A TIRONIAN SIGN ET
    ⁋ 8267 204B REVERSED PILCROW SIGN
    ⁌ 8268 204C BLACK LEFTWARDS BULLET
    ⁍ 8269 204D BLACK RIGHTWARDS BULLET
    ⁎ 8270 204E LOW ASTERISK
    ⁏ 8271 204F REVERSED SEMICOLON
    ⁐ 8272 2050 CLOSE UP
    ⁑ 8273 2051 TWO ASTERISKS ALIGNED VERTICALLY
    ⁒ 8274 2052 COMMERCIAL MINUS SIGN
    ⁓ 8275 2053 SWUNG DASH
    ⁔ 8276 2054 INVERTED UNDERTIE
    ⁕ 8277 2055 FLOWER PUNCTUATION MARK
    ⁖ 8278 2056 THREE DOT PUNCTUATION
    ⁗ 8279 2057 QUADRUPLE PRIME
    ⁘ 8280 2058 FOUR DOT PUNCTUATION
    ⁙ 8281 2059 FIVE DOT PUNCTUATION
    ⁚ 8282 205A TWO DOT PUNCTUATION
    ⁛ 8283 205B FOUR DOT MARK
    ⁜ 8284 205C DOTTED CROSS
    ⁝ 8285 205D TRICOLON
    ⁞ 8286 205E VERTICAL FOUR DOTS
      8287 205F MEDIUM MATHEMATICAL SPACE
    ⁠ 8288 2060 WORD JOINER
    ⁡ 8289 2061 FUNCTION APPLICATION
    ⁢ 8290 2062 INVISIBLE TIMES
    ⁣ 8291 2063 INVISIBLE SEPARATOR
    ⁤ 8292 2064 INVISIBLE PLUS
    ⁦ 8294 2066 LEFT-TO-RIGHT ISOLATE
    ⁧ 8295 2067 RIGHT-TO-LEFT ISOLATE
    ⁨ 8296 2068 FIRST STRONG ISOLATE
    ⁩ 8297 2069 POP DIRECTIONAL ISOLATE
     8298 206A INHIBIT SYMMETRIC SWAPPING
     8299 206B ACTIVATE SYMMETRIC SWAPPING
     8300 206C INHIBIT ARABIC FORM SHAPING
     8301 206D ACTIVATE ARABIC FORM SHAPING
     8302 206E NATIONAL DIGIT SHAPES
     8303 206F NOMINAL DIGIT SHAPES
    -----

  4. تعداد تشکر ها از starting به دلیل پست مفید


  5. #3
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    باسلام، هدف متد شما پاک کردن تمام Html Entities ها است، Entity هم کارکتر های رزرو شده در html مثل > < & " و .. است، Entity ها به 2 صورت زیر قابل استفاده در کد هامون است :

    کد:
    &entity_name;
    کد:
    &#entity_number;
    شما اگر ورودی یک رشته : Toosi <salam> بدید در خط اول رشته تبدیل به Toosi &lt;salam&gt; خواهد شد، در خط بعدی دو تا Entity خودش مشخص کرده است که اگر موجود بود پاک کند (&zwnj; و &nbsp) در خط بعدی هرچه Entity Number و Entity Name پیدا کند پاک میکند، در خط بعدی تمامی Entity باقی مانده را به کارکتر خوانا تبدیل میکند (در کدی که گذاشتید لازم نیست چون با preg_replace که هست هیچ Entity باقی نخواهد ماند که Decode کند)، در خط بعدی اگر رشته حاوی چند خط باشد همه را به یک خط تبدیل خواهد کرد (newline ها را به white space تبدیل میکند)، در خط بعدی هم فاصله های دو طرف رشته را پاک خواهد کرد و خروجی Toosi salam خواهد شد.
    ویرایش توسط T.Toosi : August 12th, 2017 در ساعت 22:43

  6. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  7. #4
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    باسلام، هدف متد شما پاک کردن تمام Html Entities ها است، Entity هم کارکتر های رزرو شده در html مثل > < & " و .. است، Entity ها به 2 صورت زیر قابل استفاده در کد هامون است :

    کد:
    &entity_name;
    کد:
    &#entity_number;
    شما اگر ورودی یک رشته : Toosi <salam> بدید در خط اول رشته تبدیل به Toosi &lt;salam&gt; خواهد شد، در خط بعدی دو تا Entity خودش مشخص کرده است که اگر موجود بود پاک کند (&zwnj; و &nbsp) در خط بعدی هرچه Entity Number و Entity Name پیدا کند پاک میکند، در خط بعدی تمامی Entity باقی مانده را به کارکتر خوانا تبدیل میکند (در کدی که گذاشتید لازم نیست چون با preg_replace که هست هیچ Entity باقی نخواهد ماند که Decode کند)، در خط بعدی اگر رشته حاوی چند خط باشد همه را به یک خط تبدیل خواهد کرد (newline ها را به white space تبدیل میکند)، در خط بعدی هم فاصله های دو طرف رشته را پاک خواهد کرد و خروجی Toosi salam خواهد شد.
    پس طبق فرمایش شما بعد از preg_replace تمامی چیزهایی که از html میمونه توی متن از بین میره و html_entity_decode توی کد بیهوده استفاده شده؟

    مورد بعدی اینکه در htmlentities در پارامتر دوم از null استفاده شده. این به این معنی هست که از مقدار پیشفرض استفاده بشه؟

    تشکر

  8. #5
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط mehran-b نمایش پست ها
    پس طبق فرمایش شما بعد از preg_replace تمامی چیزهایی که از html میمونه توی متن از بین میره و html_entity_decode توی کد بیهوده استفاده شده؟

    مورد بعدی اینکه در htmlentities در پارامتر دوم از null استفاده شده. این به این معنی هست که از مقدار پیشفرض استفاده بشه؟

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

    کد:
    $clear_text = str_ireplace(['&nbsp;','&zwnj;'], [' ', ' '], $clear_text);
    کد:
    $clear_text = html_entity_decode($clear_text);
    به دلیل اینکه لاین زیر تمام Entity ها را پاک میکند :

    کد:
    $clear_text = preg_replace('/&#?[a-z0-9]+;/i', '', $clear_text);

    پارامتر دوم htmlentities هم flags هست، برای مدیریت الگوریتم کدگذاری نامعتبر و کوتیشن ها استفاده میشود.

    کد:
    http://php.net/manual/en/function.htmlentities.php

  9. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  10. #6
    عضو انجمن starting آواتار ها
    تاریخ عضویت
    Jul 2015
    محل سکونت
    6346cc631627632
    نوشته ها
    255
    تشکر تشکر کرده 
    612
    تشکر تشکر شده 
    376
    تشکر شده در
    245 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط mehran-b نمایش پست ها
    پس طبق فرمایش شما بعد از preg_replace تمامی چیزهایی که از html میمونه توی متن از بین میره و html_entity_decode توی کد بیهوده استفاده شده؟

    مورد بعدی اینکه در htmlentities در پارامتر دوم از null استفاده شده. این به این معنی هست که از مقدار پیشفرض استفاده بشه؟

    تشکر
    بله فانکشن زیر لازم نیست و الکی اجرا میشه(بود و نبودش سودی نداره)
    کد PHP:
    );
    $clear_text = html_entity_decode($clear_text); 
    نال رو چون نمیخواسته از هیچ flags استفاده کنه و قصد ست کردن کارکتر ست داشته اورده که تابع اتربیوت هاشو بشانسه با اینکه نیازی هم نبود استفاده کنه
    کد PHP:
       htmlentities(string,flags,character-set,double_encode) 
    - - - Updated - - -

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    این لاین ها بیهوده است :

    کد:
    $clear_text = str_ireplace(['&nbsp;','&zwnj;'], [' ', ' '], $clear_text);
    کد:
    $clear_text = html_entity_decode($clear_text);
    به دلیل اینکه لاین زیر تمام Entity ها را پاک میکند :
    شاید برای مورد اولی هدفش پاک کردن فاصله ها بوده
    چون در صورت عدم وجود در انتها فانکشن با رشته عبارت nbsp; رو همراه با رشته برمیگردوند
    -----

  11. تعداد تشکر ها از starting به دلیل پست مفید


  12. #7
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    شاید برای مورد اولی هدفش پاک کردن فاصله ها بوده
    چون در صورت عدم وجود در انتها فانکشن با رشته عبارت nbsp; رو همراه با رشته برمیگردوند
    بله. نیم فاصله و فاصله رو تبدیل کرده به فاصله و بقیه Entity رو حذف کرده.

    ولی من بارم نفهمیدم در htmlentities وقتی flags رو null گذاشته یعنی تابع بدون flags کار میکنه و اروری نمیده یا نه چون flag دیفالت یعنی ENT_COMPAT | ENT_HTML401 رو استفاده میکنه اروری نمیده؟

  13. #8
    عضو انجمن starting آواتار ها
    تاریخ عضویت
    Jul 2015
    محل سکونت
    6346cc631627632
    نوشته ها
    255
    تشکر تشکر کرده 
    612
    تشکر تشکر شده 
    376
    تشکر شده در
    245 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط mehran-b نمایش پست ها
    بله. نیم فاصله و فاصله رو تبدیل کرده به فاصله و بقیه Entity رو حذف کرده.

    ولی من بارم نفهمیدم در htmlentities وقتی flags رو null گذاشته یعنی تابع بدون flags کار میکنه و اروری نمیده یا نه چون flag دیفالت یعنی ENT_COMPAT | ENT_HTML401 رو استفاده میکنه اروری نمیده؟
    ببینید هر تابع ورودی ها رو براساس ترتیب خودش میگیره
    ایشون میخواسته استرینگ رو بده و از کارکتر ست هم استفاده کنه پس یا باید اتربیوت دوم رو تال بزاره

    پیشنهاد میدم از phpstorm بعنوان ادیتور در کد نویسی استفاده کنید
    -----

  14. تعداد تشکر ها از starting به دلیل پست مفید


  15. #9
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط starting نمایش پست ها
    ببینید هر تابع ورودی ها رو براساس ترتیب خودش میگیره
    ایشون میخواسته استرینگ رو بده و از کارکتر ست هم استفاده کنه پس یا باید اتربیوت دوم رو تال بزاره

    پیشنهاد میدم از phpstorm بعنوان ادیتور در کد نویسی استفاده کنید
    بله در این حد متوجه هستم. ولی وقتی که بخوان یه آرگومان رو رد کنن جاش null نمیذارن معمولا مقدار دیفالت رو قرار میدن.

    الان می میخوام بدون این کد

    کد PHP:
    htmlentities($str, null, 'UTF-8'); 
    str ورودی رو با چه flag ای خروجی میده؟

    تشکر بابت تامل

  16. #10
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    شاید برای مورد اولی هدفش پاک کردن فاصله ها بوده
    چون در صورت عدم وجود در انتها فانکشن با رشته عبارت nbsp; رو همراه با رشته برمیگردوند
    ورودی تابع رشته است بدون entity name، داخل تابع توسط متد htmlentities کارکتر هامون به entity تبدیل خواهد شد، اما اگر در ورودی تابع &nbsp; ارسال کنید به مشکل میخورد و nbsp; برگشت میدهد (به صورت خلاصه اگر ورودی تابع مستقیم بنویسیم &nbsp; خروجی nbsp; خواهد آمد)

    نکته ی دیگری که هست در فلگ دیفالت (ENT_HTML401) این متد از کارکتر non breaking space یا همون &nbsp; پشتیبانی نمی کند، پس اگر ورودی تابع بالای ما non breaking space داشته باشد، متد htmlentities همون کارکتر فاصله را نمایش میدهد و نه &nbsp; و حتی &zwnj; هم پشتیبانی نمیکند (کلا 4 تا کارکتر فلگ دیفالت پشتیبانی میکند که در پایین لیست کردم) برای همین کلا این لاین اضافه و بدون کاربرد است مگر اینکه فلگ را عوض کنیم.

    بله. نیم فاصله و فاصله رو تبدیل کرده به فاصله و بقیه Entity رو حذف کرده.
    درست است، فاصله ها را تبدیل کرده است، اگر نباشد و چند جمله باشد بهم میچسبند.

    ولی من بارم نفهمیدم در htmlentities وقتی flags رو null گذاشته یعنی تابع بدون flags کار میکنه و اروری نمیده یا نه چون flag دیفالت یعنی ENT_COMPAT | ENT_HTML401 رو استفاده میکنه اروری نمیده؟
    این پارامتر اختیاری است، حالا اگر میخواهید ببینید اگر مقدار null بزاریم چه کارکتر هایی را این فلگ پشتیبانی میکند به صورت زیر عمل کنید : (null هم بزارید باز از ENT_HTML401 استفاده خواهد کرد)

    کد PHP:
    var_dump(get_html_translation_table(null)); 
    خروجی :

    کد:
    array (size=4)
      '"' => string '&quot;' (length=6)
      '&' => string '&amp;' (length=5)
      '<' => string '&lt;' (length=4)
      '>' => string '&gt;' (length=4)
    حالا از فلگ زیر استفاده کنید :

    کد PHP:
    var_dump(get_html_translation_table(ENT_HTML5)); 
    خروجی :

    کد:
    array (size=252)
      '"' => string '&quot;' (length=6)
      '&' => string '&amp;' (length=5)
      '<' => string '&lt;' (length=4)
      '>' => string '&gt;' (length=4)
      ' ' => string '&nbsp;' (length=6)
      '¡' => string '&iexcl;' (length=7)
      '¢' => string '&cent;' (length=6)
      '£' => string '&pound;' (length=7)
      '¤' => string '&curren;' (length=8)
      '¥' => string '&yen;' (length=5)
      '¦' => string '&brvbar;' (length=8)
      '§' => string '&sect;' (length=6)
      '¨' => string '&uml;' (length=5)
      '©' => string '&copy;' (length=6)
      'ª' => string '&ordf;' (length=6)
      '«' => string '&laquo;' (length=7)
      '¬' => string '&not;' (length=5)
      '­' => string '­' (length=5)
      '®' => string '&reg;' (length=5)
      '¯' => string '&macr;' (length=6)
      '°' => string '&deg;' (length=5)
      '±' => string '&plusmn;' (length=8)
      '²' => string '&sup2;' (length=6)
      '³' => string '&sup3;' (length=6)
      '´' => string '&acute;' (length=7)
      'µ' => string '&micro;' (length=7)
      '¶' => string '&para;' (length=6)
      '·' => string '&middot;' (length=8)
      '¸' => string '&cedil;' (length=7)
      '¹' => string '&sup1;' (length=6)
      'º' => string '&ordm;' (length=6)
      '»' => string '&raquo;' (length=7)
    میبینید این فلگ 252 تا کارکتر را پشتیبانی و تبدیل میکند، پس اول ببینید رشته ورودی این تابع شما چه Handle ای نیاز دارد و فلگ مناسب با آن را انتخاب کنید.
    ویرایش توسط T.Toosi : August 13th, 2017 در ساعت 03:05

  17. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 0
    آخرين نوشته: June 21st, 2017, 17:51
  2. پاسخ ها: 2
    آخرين نوشته: April 17th, 2017, 17:29
  3. پاسخ ها: 2
    آخرين نوشته: January 30th, 2017, 12:33
  4. پاسخ ها: 10
    آخرين نوشته: December 10th, 2014, 12:31
  5. پاسخ ها: 39
    آخرين نوشته: March 6th, 2014, 11:43

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •