تعيين تعداد كاراكتر در هر خط

naeim_crack

Active Member
سلام

من يك بار اين متن رو نوشتم ولي مدير انجمن به دليل اينكه عنوان نامناسب بوده مطلاب رئ پاك كرده در حالي كه مي تونسد عنوان رو عوض كنه و به سوال جواب بده ولي مشگلي نيست هميشه از اين مديرا ....................

بي خيال


من ميخوام يك textbox داشته باشم كه يك متن رو دريافت كنه و در يك فايل txt ذخيره بشه ولي ميخوام در هر خط اين فايل txt بيستر از 30 كاراكتر نباشه و بعد از 30 كاراكتر enter زده بشه و به خط پايين تر بره به اين دو نمونه توجه كنيد

من ميخوام اينجوري بشه :

کد:
&m2=
پله ها : 
دو رشته پله در کوهستان طاق بستان به چشم مي خورد يک رشته از 
اين دو از سمت شرقي مجلس تاجگذاري اردشير دوم شروع مي گردد و پس 
از 34 پله به طرف طاق بزرگ که به نقار خانه موسوم است مي پيچد 
و سپس 20 پله ديگر بدان اضافه مي شود که مجموعاً 54 پله مي گردد 
يک رشته ديگر پله از روي چشمه طاق بستان شروع مي شود و در 
کوه پس از 78 پله ختم مي گردد .

ولي در حالت معمولي كه ذخيره بشه اينجوريه :
کد:
&m2=
پله ها :دو رشته پله در کوهستان طاق بستان به چشم مي خورد يک رشته از اين دو از سمت شرقي مجلس تاجگذاري اردشير دوم شروع مي گردد و پس از 34 پله به طرف طاق بزرگ که به نقار خانه موسوم است مي پيچد و سپس 20 پله ديگر بدان اضافه مي شود که مجموعاً 54 پله مي گردد يک رشته ديگر پله از روي چشمه طاق بستان شروع مي شود و در کوه پس از 78 پله ختم مي گردد .

مرسي
 

tabib_m

Member
سلام

ببین این جواب میده؟
PHP:
$len=strlen($string);
for($a=0;$a<$len;$a=$a+30){
     $string_new.=substr($string,$a,30)."\n";
}



پ.ن : وظیفه ی مدیرا این نیست که بیان کارهای بقیه رو راست و ریست کنن و عنوان درست کنن و ... , اونها فقط باید از تخلف در قوانین سایت جلوگیری کنن ...
 

oxygenws

Active Member
برام جالبه که بعد از 927 تا پست هنوز قوانین رو نمی دونی...

محسن جان، کدت برای فارسی مشکل داره. ضمن اینکه تابعی به نام wordwrap (یا چیزی شبیه این) داریم که همین کار رو می کنه، اما اون هم برای فارسی مشکل داره.
 

oxygenws

Active Member
چرا نداریم؟!
فقط یکمی دردسر داره .
مینویسم میذارم
اول بنویس بعد بیا چیزی بنویس :)
من از همین الان میگم برنامه ای که می نویسی باگ داره. بنویس تا بهت بگم کجاش :)

پ.ن: اگر تو الان داری تو ذهنت این برنامه رو می نویسی، من تجربی کار کردم در موردش!! مسلما میشه، اما اونقدر این عمل طولانی و زمان بر میشه که اصلا ارزش نداره.
 

I.NoBody

Active Member
میشه ولی اگه نصور کنیم که اون رشته ای که قراره روش پردازش انجام بشه، خیلی بزرگتر از این حرفا باشه، زمانبر میشه.
منم با امید موافقم. ارزششو نداره.
ولی اگه خیلی مهمه بنویسمش و بذارمش
 

I.NoBody

Active Member
اين کدو نوشتم.
البته کلمات رو تشخیص میده و کلمه رو از وسطش نمی بٌرّه.
امیدوارم درست کار کنه.
البته خوشحال میشم اگه باگشو پیدا کنین.
کد:
<?php
$fa="پله ها :دو رشته پله در کوهستان طاق بستان به چشم مي خورد يک رشته از اين دو از سمت شرقي مجلس تاجگذاري اردشير دوم شروع مي گردد و پس از 34 پله به طرف طاق بزرگ که به نقار خانه موسوم است مي پيچد و سپس 20 پله ديگر بدان اضافه مي شود که مجموعاً 54 پله مي گردد يک رشته ديگر پله از روي چشمه طاق بستان شروع مي شود و در کوه پس از 78 پله ختم مي گردد ";
$en="fdgdfgdfgddffg  ds dsfsd f sf sfd sgjdsfhg jhg dskhgf khgsd kfg ksdgkdsfgf skhjs";
function my_wrapper($str,$max_char,$lang="fa"){
	if($lang=="fa")
		$max_char*=2;
		
	if(strlen($str)<=$max_char)
		return $str;
	$s2=$str;
	while (strlen($s2)>1){
	$k=$max_char-1;
		while ($k>1 and ($s2[$k] !=" ")){
			$k--;
		}
		if($k==1){
			$pos=strpos($s2," ");
			$final.=substr($s2,0,$pos);
			$s2=substr($s2,$pos+1);
		}
		else{
			$final.=substr($s2,0,$k);
			$s2=substr($s2,$k+1);			
		}
		$final.=chr(13).chr(10);
	}
	return $final;
}

echo my_wrapper($en,30,"en");
echo "<hr>";
echo my_wrapper($fa,30,"fa");
?>
 
آخرین ویرایش:

naeim_crack

Active Member
اقا دمت گرم من برم امتحان كنم .

ايول ............... بعضي وقتها اره اينجوري ميشه

با زم مرسي
 

I.NoBody

Active Member
خواهش می کنم.
ولی حالا که رفتم تابع wordwrap رو ديدم،می بینم که بیخودی به مغزم فشار آوردم.
همون wordwrap رو استفاده کن. فقط اگه رشته ات فارسیه، تعداد رو 2 برابر بده یعنی به جای 30، 60 بده.
کاملتره
 

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

بالا