مشکل با نمایش نظرات در یک div

DJ_Baba

Member
من وقتی سیستم نظرات نوشتم که وقتی کوری می گیرم از بانکم چون مقدار یکی از فیلد نظر خیلی طولانی هستش فرم قالب سایتو بهم می زنه
یعنی این متن باید در div به اندازه 460 px نمایش داده بشه و اگه کم بود بره یک خط پایین نمیره و نوشته ادامه پیدا میکنه در یک خط
حالا می چی کار کنم لطفا کمکم کنید.
 

ziXet

مدیر انجمن PHP/MYSQL
من وقتی سیستم نظرات نوشتم که وقتی کوری می گیرم از بانکم چون مقدار یکی از فیلد نظر خیلی طولانی هستش فرم قالب سایتو بهم می زنه
یعنی این متن باید در div به اندازه 460 px نمایش داده بشه و اگه کم بود بره یک خط پایین نمیره و نوشته ادامه پیدا میکنه در یک خط
حالا می چی کار کنم لطفا کمکم کنید.
اگه میتونی یه عکس بذار تا بفهمیم
 

alireza82

Well-Known Member
میتونید استرینگ های بزرگ رو با توابع php بشکنید. این مشکل به خاطر این هست که فاصله ای بین حروف نیست بنابراین بروزر هم نمیتونه اون رو براتون بشکنه تا در اندازه دلخواه شما نمایش در بیاد!
 

sunrise

Member
البته اين مورد به PHP ربط پيدا نمي کنه، اما مي تونيد بعنوان يک خصيصه CSS اين رو براي تگ div در نظر بگيريد:
کد:
overflow: scroll
 

DJ_Baba

Member
آخه دست عزیز من می خوام از این div پرینت بگیرم اون وقت Scroll ادامه متن رو نشون نمیده
 

sunrise

Member
آخه دست عزیز من می خوام از این div پرینت بگیرم اون وقت Scroll ادامه متن رو نشون نمیده
ولي هيچ راهي وجود نداره که بتونيد متنهايي که به اين سبک پيوسته نوشته ميشه رو Break کنيد، تنها راه همين هست که گفتم يا اينکه شما کدي توليد کنيد که در صورت مواجهه با چنين نوشته هايي، بصورت اتوماتيک متن رو به چند خط بشکنه يا اينکه مي تونيد متن رو خلاصه کنيد، يعني مثلا 150 کاراکتر اول يا ... رو نشون بده که البته اين روش فکر کنم مناسب کاري که شما ميخواهيد نباشه.
 

hidensoft

Member
میتونید استرینگ های بزرگ رو با توابع php بشکنید. این مشکل به خاطر این هست که فاصله ای بین حروف نیست بنابراین بروزر هم نمیتونه اون رو براتون بشکنه تا در اندازه دلخواه شما نمایش در بیاد!
حد اکثر ظرفیت کارکتر رو حساب کن ، strlen -> با این تعداد کارکتر ها رو مشخص کن ، اینا رو بر همدیگه تقسیم کن به تعداد با قیمانده در حداکثر ظریفیت ها یه n\ باز یا هر طور که می تونی ک ببرش به خط بعد.
 

sunrise

Member
حد اکثر ظرفیت کارکتر رو حساب کن ، strlen -> با این تعداد کارکتر ها رو مشخص کن ، اینا رو بر همدیگه تقسیم کن به تعداد با قیمانده در حداکثر ظریفیت ها یه n\ باز یا هر طور که می تونی ک ببرش به خط بعد.
البته \n فقط حالت نمايشي اون رو در سورس کد HTML ميشکنه و براي اينکه اين Break ها اعمال بشه مي بايست از تگ <br /> استفاده بشه.
 

hidensoft

Member
البته \n فقط حالت نمايشي اون رو در سورس کد HTML ميشکنه و براي اينکه اين Break ها اعمال بشه مي بايست از تگ <br /> استفاده بشه.
از تذکر شما ممنونم اما من که گفتم :
یا هر طور که می تونی ک ببرش به خط بعد.

اینم یه کد نمونه

PHP:
<?php
$str = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssss";

$len = strlen($str);
echo "lenght of string = ".$len."<br />";
$breakStep = 150;
echo "Break step is = ".$breakStep."<br />";
$n = round($len / $breakStep) ;
echo "Number of breaking = ".$n."<br />";
$explode = " ";
for ($i = 1; $i <= $n; $i++)
{
	$op1 = ($i-1) * $breakStep ;
	$op2 = $breakStep ;
	$explode .= substr($str,$op1,$op2 );
	$explode .= "<br />";
}

echo $explode;
?>

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

PHP:
<?php
function text_exploder($str, $step, $break = "<br />")
{
	$len = strlen($str);

	$n = round($len / $step) ;
	
	$explode = " ";
	
	for ($i = 1; $i <= $n; $i++)
	{
		$op1 = ($i-1) * $breakStep ;
		$op2 = $breakStep ;
		$explode .= substr($str,$op1,$op2 );
		$explode .= $break;
	}

	return $explode;
}
?>

کمتر پیش میاد کد بنویسم برای کسی ، غنیمت بدون :D :cool: :rose:
 

پیوست ها

  • index.rar
    517 بایت · بازدیدها: 2

yakoza

Well-Known Member
به جناب محمد آقا ( hidensoft ) خوشحالم که برگشتی

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

PHP:
<?php
$text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssssssssssssddddddddddddddddddddddddddddddddffffffffffffffffffffffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssszzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmmmmmmmmooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsssssssssssss";
$newtext = wordwrap($text, 50, "<br />\n",true);

echo $newtext;
?>

راستی حاجی منم برج 8 اعزامم ! برام دعا کن جای خوبی بیوفتم
 

hidensoft

Member
البته اینم می شد اما طبق معمول من راه سخت تر رو انتخاب کردم :d

انشا الله که زود تر تموم بشه این خدمت جمیع مسلمین ایران راحت بشن ‌. برات آرزوی موفقیت می کنم . مدیر انجمن هم شدی . خیلی خوبه .
 

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

بالا