الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقطيع الكلمة الطويلة

بدأه هالي الدهوكي في 13 نوفمبر 2012 · 17 رد · 2,060 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

شباب كيف الحال إن شاء الله بخير ...

شباب لو سمحتم لي سؤال .

مثلا عندي جدول و به كلمات طويلة مثل ههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه بهذا الشكل

<table border="1" width="400">
<Tr>
<td>هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه</td>
</tr>
</table>

طيب الان هنا مشكلة كبيرة و انها تأثر على ستايل الموقع يعني حتى السكرول بار ليمين و يسار يضهر مفيد و مختصر هذا خطأ .

اريد كيفما تكون الكتابة و اي شكل تكون اريد جعل الكتابة محصورة بين 400px يعني اذا كتب

(هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه لست ادري)

تضهر بهذا الشكل

ههههههههههههههههههههه

ههههههههههههههههههههههههههه

هههههههههههههههههههههههههههه

لست ادري

يعني اريد الكتابة تكون محصورة في table و يكون قياس التايبل table width="400"

كيف اتجاوز هذه المشكلة

انا استخدم دوال مثل قطع النصوص الطويلة مثل wordwrap و chunk_split لكنها لا تعمل مع اللغة العربية ؟ مال الحل ؟ لكن الأجمل هو اريد جعل الكتابة محصورة في table و اتجاوز هذه الدوال مثل wordwrap :)

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 13 نوفمبر 2012 في 17:52

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#2

السلام عليكم

- أولاً : عليك مراجعة شروط القسم , عنوان السؤال مخالف !

لا توجد كلمة عربية متصلة تصل إلى 400px ما كتبته أنت هو عبارة عن كلمة واحدة متصلة .

- عند تحديد عرض للعنصر فيتم الإحتواء تلقائياً على حسب العرض المحدد والنزول لسطر جديد في حالة تخطي العرض المسموح , ويبحث عن أقرب مسافة فارغة قبل الكلمة لنزول سطر جديد وعدم إقتطاع هذه الكلمة الذي يؤدي لخلل في المعنى .

تم تعديل هذه المشاركة بواسطة ahmedsaoud31 في 13 نوفمبر 2012 في 15:13

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

هل تعطينا مثال آخر غير هذه الكلمة ( هههههههههه ) لو سمحت ؟

1

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#4

اخي هو هذا المقصود كلمة واحد مثل اي كلمة مثلا لنفترض حرف الخاء و عند لجها مع بعضها بهذا الشكل خخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخخ

التصميم يصبح يعرض بحيث ان السكرول يمين و يسار يعمل يعني يأثر على الموقع فما الحل .؟

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#5

لا اعرف لماذا انت مصر على كتابة كلمة طويلة جدا انا لم اجد اي فائدة لها :blink:

على كل حال يمكنك اضافة استعمال الكود التالي :

<table border="1" width="400">
<tr>
<td style="word-break: break-all;">
هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه</td>
</tr>
</table>

تم اضافة خاصية

word-break: break-all;

ليتم "قطع الكلمة بدلا من اظهارها بسطر واحد

#6

عفواً اخي ,

انت متخيل انه في كلمة بهذا الطول , اما ادا كنت متخوف من وجود كلمات طولها فوق ال100 حرف يمكن عمل فالديشن على الكلمات بحيث تتأكد ان طول كل كلمة اقل من N من الاحرف

او يمكنك البحث عن الكلمة الطويلة اطول من N و اضافة فواصل او اي حرف دلالي للقطع بعد Y من الاحرف في كل كلمة

دالة الاقتصاص strstr()

دالة عدد الحروف mb_strlen()

مع التوفيق عزيزي

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#7

اخي الرد للأخ لينوكس اعجبني كثيرا لكن مشكلة بسيطة وجدتها و هي حتى الكلمات التي تضهر في اخر القياس تقطع

افترض الخطوط هي القياس

مثلا افترض هذا الخط هو قياس عرض التعليق ولا اريد ان يتجاوز التعليق عن هذا الخط .

-----------------------------------------------

اذا يأتي احدا و كتب

هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه كيف يمكن هذا !

اريد ان تضهر بهذا الشكل

-----------------------------------------------

ههههههههههههههههههههههههههههههههه

هههههههههههههههههههههههه كيف يمكن

هذا

شوفو الصورة كيف اصبحت حتى الكلمات الأخرى متقاطعة ...

و اسف كثيرا على الإزعاج ...

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 14 نوفمبر 2012 في 13:06

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#8

اخي كما قال الاخ حمدان قم بتقطيع الكلمة التي يكون عدد احرفها مثلا 40 حرف لانه لايوجد كلمة في العربية طبيعية عدد حروفها اكثر من 40 يمكنك استخدام الدالة strlen لحساب عدد الاحرف الموجودة

في الكلمة مع الاشارة الى ان كل حرف عربي يمثل حرفين :wacko: اي اذا اردت اقتطاع 40 حرف قم بتحديد القيمة 80 وهكذا اذا لم تظهر الحرف العربية بشكل صحيح تاكد من الترميز المستخدم يجب ان يكون utf-8

بامكانك استخدام الكود التالي الذي قمت بكتابته:

<?php
header('Content-Type: text/html; charset=utf-8'); 
$txt = 'هذا مثال عن تقطيع هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه';
$words = explode(' ', $txt);
for($i = 0; $i < count($words); $i++)
{

	if(strlen($words[$i]) > 40 * 2)
	{
		$words[$i] = implode('<br>', str_split($words[$i], 40));
	}
}
echo implode(' ', $words);
?>

لا تنسى ان عدد الحروف يجب ان يضرب ب 2

تم تعديل هذه المشاركة بواسطة linux web man في 14 نوفمبر 2012 في 17:13

#9

اخي العزيز الفكرة جميلة جدا جدا جدا و اعجبتني و فهمت كيف تم عمل هذا سأقوم بشرحها لكم ههههههه

اول شئ عملنا متغير text$

و وضعنا بداخله

هذا مثال عن تقطيع هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه

طيب بعدين شو عملت عملت للمتغير text$ خليته تتقسم كل كلمة لوحدها يعني تصبح على شكل array بإستخدام دالة explode

اذا طبعنا المتغير words$ بطريقة print_r

ستكون النتيجة ///

Array ( [0] => هذا [1] => مثال [2] => عن [3] => تقطيع [4] => هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه )

طيب الان وصلنا الى مرحلة for اي لووووب و وضعنا بها دالة count لتحسب كم حرف يوجد في كل كلمة متصلة ببعضها .

الأن في لوب اي for خلينا الدالة

for($i = 0; $i < count($words); $i++)
{

}

طيب الأن ستقوم دالة for بحساب عدد الأحرف في كل مصفوفة

مثلا

هذا = 3 كلمات

مثال = 4 كلمات

عن = 2 كلمات

تقطيع = 5 كلمات

هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه = 74 كلمات .

طيب يبقى هناك شرط لنضعه في دالة for ليتم تقطيع الأحرف اذا كان اطول من حد المسموح به ..

يعني احنا بال اول وضعنا explode و خلاها كل كلمة في مصفوفة لوحدها و بعدين علمنا لووب اي for و عملنا دالة count ليحسب عدد الأحرف في كل مصفوفة اي في كل كلمة .

مؤخرا اضفنا تحقق في دالة for و الي هو ...

for($i = 0; $i < count($words); $i++)
{
        if(strlen($words[$i]) > 40 * 2)
        {
                $words[$i] = implode(' ', str_split($words[$i], 40));
        }
}

في الشرط وضعنا دالة strlen لتكون عملية حسابية مضبوطة .

و بداخلها قلنا اذا كان عدد الأحرف في كل مصفوفة يتجاوز حد الـ 20 حرف, اقطع كلمة التي تتجاوز فقط .

و مثل ما قال الأخ العزيز ... linux web man اذا اردت تقطيع كل 20 حرف يجب كتابة 40 و ايضا مثل ما قال كل حرفين عربي يمثل حرف واحد ...

طيب وما يبقى هناك هو اخر خطوة وهي الطباعة و طريقة العرض .

طيب الأن لو طبعنا متغير words$ فقط سيضهر على شكل مصفوفة array يعني لم يضهر شيئا غير كلمة array .

لانه كما نتذكر في اول الدالة في متغير words حولنا الكتابة الي داخل text$ الى متغير بإستخدام دالة explode

لكن في طريقة العرض يجب تحول متغير words$ مرة اخرى الى عرض الطبيعي وبإستخدام دالة implode ..

=============

لكن اعتقد بأن هناك مشكلة صغيرة ..

مثلا اذا قلت اذا كان عدد الأحرف اكبر من 20 طيب اذا وضعت 20 ايضا للقطع لا مشاكل لكن اذا وضعت 15 بهذا الشكل

        if(strlen($words[$i]) > 20 * 2)
        {
                $words[$i] = implode(' ', str_split($words[$i], 15));
        }

تضهر علامات استفهام بهذا الشكل .

----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+

هذا مثال عن تقطيع ههههههه� �ههههههه ههههههه� �ههههههه ههههههه� �ههههههه ههههههه� �ههههههه ههههههه� �هههههه

----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+

هل هناك مشكلة في الترميز او يجب رقم العداد الأحرف يكون متساويا مع رقم عدد القص ؟

يعني مثل هذا مثلا

        if(strlen($words[$i]) > 10 * 2)
        {
                $words[$i] = implode(' ', str_split($words[$i], 10));
        }

و شكرا جزيلا للأخوان و الي حبيت فقط اشرح ما فهمته من الموضوع و ان كان هناك اخطاء في الشرح او الفهم اتمنى تعدلون فيها بإضافة ردود على الموضوع لأستفاد و يستفادون الآخرين ايضاً ...

تحياتي ....

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 15 نوفمبر 2012 في 13:54

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#10

اخي المشكلة في ان الحروف العربية تمثل بحرفين فاذا كان العدد فردي سيقوم بكتابة "نصف" حرف "لم اجد افضل من هذا التعبير" :happy:

اي انت عندما تحدد ان عدد الحروف 15 لا تنسى ان تقوم بضربها بـ 2 اي العدد يجب ان يكون 30 اما عندما تضع القيمة 15 فقط فسيتم اقتطاع 7.5 حرف :huh: فيتسبب ذلك فظهور اشارة الاستفهام

:huh:

تحياتي

#11

اخي شكرا للإجابة لكن حللتها بإضافة *2 على التقطيع ايضا ... كنت لم الاحظها حسبالي *2 موجودة في التقطيع المهم ...

انا فكرت في شئ جميل لإضيفها في هذه الدالة الجميل و إن شاء الله في نفس الموضوع سأقوم برد عليه بعد ان انتهي منها بشكل جيد ... بإذن الله ... و مع التخياتي

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#12

اخي لينوكس linux انا عدت,

طيب انا احببت اطور هذه الدالة التي تقطع الأحرف الطويلة و ما سيكون التطوير فيها ؟

اخي افترض ان احدا كتب هذا مثال عن التقطيع هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

طيب الان الدالة تتكلم مع العربية بشكل جيد و بتقطيع الدقيق !

طيب بهذه الحالة اذا وجد كلمات ملتصقة مثل hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh في المصفوفة سيقطعها او سيحسبها بأنها عربية و لذالك اذا قلنا اقطع بعد 15 احرف ضرب 2 للكلمات العربية .

بهذه الحالة سيقطع كل 15 احرف لوحدها لكن اذا وجد كلمات مثل hhhhhhhhhhhhhhhhhhhhhhhhhhh سيقطعها على كل 30 حرف .

طيب الان لدي فكشن جميل و الي هو يفحص اذا كانت اللغة عربية ام غيرها . بإستخدام هذه الدالة سنتخطى هذه المشكلة بسهولة تامة .

دالة تحقق من الأحرف ان كانت عربية او غيرها هي ...

<?php


 function arlang($ar)
 {

 $Ar = array('ض', 'ص', 'ث', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'د', 'ش', 'س', 'ي', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ك', 'ط', 'ذ', 'ئ', 'ء', 'ؤ', 'ر', 'لا', 'ى', 'ة', 'و', 'ز', 'ظ');
 $isAr = 0;
 for($i = 0;$i < count($Ar);++$i)
 {
 if(stristr($ar, $Ar[$i]))
 {
  ++$isAr;
 }
 }

 if($isAr > 0)
 {
  return true;
 } else
 {


  return false;
 }
 }
?>

هذه الدالة تحقق ان كانت المصفوفة عربية ام غيرها و وضعت الشرط في for اذا كانت عربية تقطع الأحرف مثلا 15 * 2 و اذا كانت غير العربية يقطعها مثلا 15 بدون ان اضع * 2 لانه فقط الحروف العربية تمثل حرفين . شوف المثال و رح تفهم اكيد ...

$txt = ' hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh هذا مثال عن تقطيع هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه';
$words = explode(' ', $txt);
for($i = 0; $i < count($words); $i++)
{
	if(arlang($words[$i])){
	        if(strlen($words[$i]) > 20 * 2)
        {
		$words[$i] = implode(' ', str_split($words[$i], 15 * 2));    
        }
	}else{
        if(strlen($words[$i]) > 20)
        {
		$words[$i] = implode(' ', str_split($words[$i], 15));    
        }
		}




}
echo implode(' ', $words);

و شكرا جزيلا للمساعدة و إن شاء الله ايضا تستفادون من المثال الذي يفصل بين الكلمات العربية و غيرها ... تحياتي

المصمم و المبرمج

هالي الدهوكي

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 16 نوفمبر 2012 في 17:18

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#13

اخي لايزال لدينا مشكلتين الاولى بسيطة هي عدم تطابق اسماء الدوال is_arabic و arlang في المثال ارجو ان تعدله

المشكلة الثانية هي مشكلة كبيرة وهي اذا كتب المستخدم ههههههههههههههههههههههههههههههههههههههههههههههhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

لا يمكن للسكربت ان يقوم بتقطيعها و تسبب مشاكل جرب الكود التالي كي تعرف المشكلة :

<?php
header('Content-Type: text/html; charset=utf-8'); 
$txt = 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiهههههههههههههههههههههههههههههههههههههههههه';

$words	 = explode(' ', $txt);
for ($i = 0; $i < count($words); $i++)
{
	if (is_arabic($words[$i]))
	{
		if (strlen($words[$i]) > 20 * 2)
		{
			$words[$i] = implode(' ', str_split($words[$i], 15 * 2));
		}
	}
	else
	{
		if (strlen($words[$i]) > 20)
		{
			$words[$i] = implode(' ', str_split($words[$i], 15));
		}
	}
}
echo implode(' ', $words);

function is_arabic($ar)
{

	$Ar = array('ض', 'ص', 'ث', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'د', 'ش', 'س', 'ي', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ك', 'ط', 'ذ', 'ئ', 'ء', 'ؤ', 'ر', 'لا', 'ى', 'ة', 'و', 'ز', 'ظ');
	$isAr = 0;
	for ($i = 0; $i < count($Ar); ++$i)
	{
		if (stristr($ar, $Ar[$i]))
		{
			++$isAr;
		}
	}

	if ($isAr > 0)
	{
		return true;
	}
	else
	{


		return false;
	}
}

?>

:blink:

فكرت بحل لهذه المشكلة لكنه حل طويل نسبيا حيث تقوم بالتأكد ان الكلمة لا تحوي الا حروفا عربية او انكليزية واذا حوت الكلمة حروفا عربية و انكليزية تقوم بقطعها لكي تشكل كل جزء كلمة منفصلة :thinking:

طبعا الطريقة معقدة وفي بعض الاحيان لا داعي لها ولكن يجب على المطور ان باخد بعين الاعتبار جميع الاحتمالات التي يمكن للمستخدم ان يقوم بها :evil:

#14

صحيح يا اخي العزيز المشكلة لكن اضن ان احتمالها قليل في المئة

يعني لما يجي يكتب او يكتب انجليزي او عربي يعني ليست مشكلة كبيرة

لكن مع ذالك اعطيني ما لديك لأراه و ادرسه لكن لم افهم لماذا مع هذه الكلمة تسبب المشاكل ؟ ممكن شرح لو سمحت ؟

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiهههههههههههههههههههههههههههههههههههههههههه

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 16 نوفمبر 2012 في 17:43

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#15

اخي المشكلة تحدث عندما تكتب hhhh ومن ثم ههههههه عندها يظهر بعض الاحرف على شكل ؟ �ههههه جرب هذا الكود

<?php
header('Content-Type: text/html; charset=utf-8'); 
$txt = 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhهههههههههههههههههههههههههههههههههههههههههه';

$words	 = explode(' ', $txt);
for ($i = 0; $i < count($words); $i++)
{
	if (is_arabic($words[$i]))
	{
		if (strlen($words[$i]) > 20 * 2)
		{
			$words[$i] = implode(' ', str_split($words[$i], 15 * 2));
		}
	}
	else
	{
		if (strlen($words[$i]) > 20)
		{
			$words[$i] = implode(' ', str_split($words[$i], 15));
		}
	}
}
echo implode(' ', $words);

function is_arabic($ar)
{

	$Ar = array('ض', 'ص', 'ث', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'د', 'ش', 'س', 'ي', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ك', 'ط', 'ذ', 'ئ', 'ء', 'ؤ', 'ر', 'لا', 'ى', 'ة', 'و', 'ز', 'ظ');
	$isAr = 0;
	for ($i = 0; $i < count($Ar); ++$i)
	{
		if (stristr($ar, $Ar[$i]))
		{
			++$isAr;
		}
	}

	if ($isAr > 0)
	{
		return true;
	}
	else
	{


		return false;
	}
}

?>

اما في الحالة الثانية هههه ثم hhhh يتم اقتطاع الاحرف الانكليزية بضعف العدد المحدد لأن اليرنامج يعتبر ان النص باللغة العربية بسبب اتصال hhhh مع هههههه

$txt = 'ههههههههههههههههههههههههههههههههههههههههههhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh';

اسف اذا كان كلامي غير مفهوم :blush:

#16

صحيح اخي هذه هي المشكلة لكن اذا كان هناك فاصل اي space بين hhhhhhhhhhhhhhhhhhhhhh ومن ثم ههههههههههههههههههه لا مشاكل ;) جرب ذالك

$txt = 'hhhhhhhhhhhhhhhhhhhhhhhh هههههههههههههههههههههههههههههههههه';

طيب هل هناك دالة لحل هذه المشكلة, لكن لا اضن انها مشكلة كبيرة اذا المستخدم يكتب شيئا يكون عربيا اما انجليزياً لكن كما قلت انت في رد السابق ( يجب على المطور ان باخد بعين الاعتبار جميع الاحتمالات التي يمكن للمستخدم ان يقوم بها ) ...

تحياتي لك و شكرا جزيلا للمتابعة .

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#17
$txt = 'hhhhhhhhhhhhhhhhhhhhhhhh هههههههههههههههههههههههههههههههههه';

اشرت لهذه المشكلة في ثاني مشاركة لي , استخدم دالة mb_strlen

لان دالة strlen لا تحسب عدد الحروف بشكل صحيح , ففي حال استخدامك اللغة العربية ينبغي عليك القسمة على اثنان ولكن الاحرف الانجليزية يكون عددها بشكل صحيح ولذلك ادا كان النص يحتوي عربي وانجليزي فان العدد سيختلف و بالطبع القسمة على اثنان لن يكون حل صحيحاً , لذلك استخدم دوال mb_ في حال التعامل مع النصوص

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#18

اخي العزيز هل تقصد بهذا الشكل ؟

mb_strlen($g,'utf-8');

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

مواضيع مشابهة