متن به صورت pre

foranyone

Well-Known Member
ایا میشه یه متن رو پردازش کرد و دید اگه تا یه کاراکتر مشخص اینتری وجود نداره یه اینتر اضافه شه

مثلا 500 کاراکتر رو چک کنه و اگه دید اینتری نیست خودش یه اینتر اضافه کنه و بره سراغ 500 کاراکتر بعدی و به همین

ترتیب و ....

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

پشت سر هم تایپ کنه ، و ممکنه ساختار div محتوی متن بخوره هرچند که من این کار رو کردم تا به هم نخوره



<div style="overflow:auto;">

<pre>

</pre>

<div>

ولی نمیخوام اسکرپل افقی بخوره به عبارتی width کاملا کنترل بشه
 

P.H.P

Member
اگه صحیح کار کرده باشی هیچوقت الکی ساختار div به هم نمیخوره

اگه قرار باشه خراب بشه که دیگه ......

خوب یه نمونه از این خرابی رو بزار ببینم
 
آخرین ویرایش:

foranyone

Well-Known Member
نمونه لازم نیست دوست من !

شما داخل textarea دستت رو بذار رو یه دکمه اینجوری اگه بخوای اونرو داخل pre نمایش بدی میخوره به هم ، امتحان کن
 

P.H.P

Member
Space هارو جدا کن (با استفاده از Explode)

همه رو نمایش بده (با استفاده از Foreach)

شرط بزار اگه تعداد کاراکتر ها بیش کمتر از اونی که میدونی هست همون رو نمایش بده (با استفاده از Mb_Strlen)

در غیر اینصورت تعداد کاراکتر ها رو تقسیم بر تعدادی که باید <BR /> بگیره بکن با استفاده از حلقه For (که ادامشم نمایش بده) و با استفاده از (Mb_Substr)

یه تابع درست کنی بهتره

موفق
 

P.H.P

Member
باید روش کار کنی
به تابع تبدیل کن


PHP:
<?php
$string = "Texxxxxxt forrr teeeeesssssssssxszxt, Div HTMMMMMMMMMMMML Tags and Text";
$arr = explode(" ", $string);

foreach($arr as $val)
    if(mb_strlen($val) <= 5)
        echo $val . " ";
    else
    {
        $getF = (int)(mb_strlen($val)/5);
        for($i=0; $i<=$getF; $i++)
            echo mb_substr($val, $i, 5) . "<br />";
    }
?>

موفق
 

foranyone

Well-Known Member
آخه شما اصلا اینترها رو در نظر نمیگیرین ، به همین خاطر روشتون غلطه :

من میگم اگه طرف enter نزده باشه ما خودمون اینتر اضافه کنیم ، ولی شما دارین کل متن رو بررسی میکنین بدون توجه به طول جملات خط
 

foranyone

Well-Known Member
این یه مثال :
کد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>


<div style="background-color:#99CC00; color:#333333; width:300px;">
<pre>

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

چطوری میتونم از این کار جلوگیری کنم 

به عبارتی متن در صورت عدم وجود اینتر انتر بهش اضافه کنم
</pre>


</div>
</body>
</html>


در ضمن نمیخوام از overflow :auto استفاده کنم
 

jigartalaa

Member
یه کار دیگه هم میشه کرد از ای جکس استفاده کنی که کادر با توجه به متنت تغییر کنه یا بیاد ببینه بررسی کنه اگر به انقدر متن رسید بهش تگ br اضافه کنه ! تست نکردم ! شما تست کن ببین میشه یا نه !
 

foranyone

Well-Known Member
یه کار دیگه هم میشه کرد از ای جکس استفاده کنی که کادر با توجه به متنت تغییر کنه یا بیاد ببینه بررسی کنه اگر به انقدر متن رسید بهش تگ br اضافه کنه ! تست نکردم ! شما تست کن ببین میشه یا نه !


فکر نمیکنم روش خوببی باشه !

سوالم رو بذارین اینجوری بپرسم :

چسکار کنم که تو overflow خط شکسته شه !!
 

jigartalaa

Member
:-?روش فکر میکنم ببینم عقلم به جایی قد میده یا نه !

شرط ها رو امتحان کردی ؟ جواب نداد ؟
 

jigartalaa

Member
راستی میتونی از اینا هعم استفاده کنی تو txtArea بعد تنظیم کنی که چه کارایی انجام بدن ! تست کردی ؟
PHP:
cols="100%" rows="10" tabindex="4"

موفق باشی !
 

جدیدترین ارسال ها

بالا