تبديل به متن ادامه دار ...

sunrise

Member
سلام دوستان
لطفا اگه ميشه بگيد آيا كدي هست كه اين كار رو انجام بده و اگه هست اون چيه و چطوري بايد ازش استفاده كرد.

من ميخوام مثلاً يه عبارت كه طولاني هست خودش اولاشو بنويسه و بقيشو بصورت ... نشون بده

مثلاً:
نسخه هاي جديد ويندوز به زودي مي آيد

اينطوري نوشته بشه:

نسخه هاي جديد وين ...

ممنون ميشم اگه راهنمايي كنيد :oops:
 

sunrise

Member
دوستان لطفاً به غير از كد substr كه با اون هم ميشه اين كار رو كرد كد ديگه اي بگيد چون با اين كد يه كم مشكل داره براي حروف فارسي
 

oxygenws

Active Member
شما واقعا انتظار دارید همه ظرف این دو ساعت بیان و به شما جواب بدن؟؟
واقعا که!!!!
امیدوارم بقیه دوستان جوابت رو بدن، من که نمی دم.
 

Dark Man

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

oxygenws

Active Member
من نه از کسی طلبی دارم، نه به کسی بدهکارم.
در پست قبلی هم تذکری به این دوست عجول دادم و علاقه مند ام که دوستان دیگه جوابش رو بدن. (فکر کنم از پست های دیگه بفهمی که من کلا مشکلی با جواب دادن به دوستان ندارم)

تعریف مدیر در انجمن های مجید آنلاین، بیشتر شبیه "ناظم" شده، نه کسی که علمش از بقیه بیشتر باشه و به سوالات جواب بده و ...

در آخر دوباره تکرار می کنم...
من نه از کسی طلبی دارم، نه به کسی بدهکارم.
 

Mikhak

Active Member
فكر كنم مدير يه سايت يا انجمن يه كمي بايد احساس مسئوليت داشته باشه
من نه از کسی طلبی دارم، نه به کسی بدهکارم.
بس واسه چي اينجا مدير هستين مدير هستين كه تاپيك ها رو قفل كنين يا حذف كنين يا ...
فكر نكنم اين كارا كار زياد سختي باشه
اميد جام من جواب ميدم شما زياد خودتو ناراحت نكن كه واسه قلبت ضرره :razz:
خيلي سادست نميدونم چرا اميد جان حوصله جواب دادن رو نداره :neutral:
طول رشته رو ميگيري و توي يه if بررسي ميكني كه اگه بزرگتر از 10 هستش 10 حرف اول رو نشون بده و بقيه ش رو سه تا نقطه بزاره :)
كدشم ميشه يه همچين چيزي
PHP:
$s="1234567891234567890";
if((strlen($s))>10){
for($i=0;$i<10;$i++)
echo $s[$i];
echo"...";
}else{
echo $s;
}
----------------------
سينا
 
آخرین ویرایش:

oxygenws

Active Member
سینا جان، من مسولیت پذیر هستم، وگرنه به این دوستمون اون حرف رو نمی زدم. :wink:
در ضمن، جواب سوال، اینی که شما میگی نیست :cool:
 

Mikhak

Active Member
ميدونم اميد جان من به شخصي به مسئوليت پذيري شما مطمئنم ولي جديدا
خيلي بد اخلاق شدي اينو تنها من نميگم خيليا اومدن اينجا يه چيزي رو پرسيدن اونوقت شما اينجوري زدي تو زوقش و تاپيك رو قفل كردي و ....
خلاصه بگزري
م ميشه بفرمايين كجاي كد من غلطه و جواب سوال چيه؟؟؟؟؟؟؟؟؟؟/
-------------------
سينا
 

oxygenws

Active Member
به پست دوم این دوست عجول توجه کن و دوباره بخونش. کد شما برای اون مورد، در تقریبا 50% مواقع جواب نمی ده :)
 

oxygenws

Active Member
کاراکتر فارسی اصولا دو بایت می باشد.
کافیه اون 10 کاراکتری که شما میگی، بین یکی از اون دو بایت بیفته، تا یک -مربع- قبل از اون "..." چاپ بشه...
 

Mikhak

Active Member
خوب اينو بايد بررسي كنه كه اگه كاراكتر دو بايت باشه يه دونه اضافي حساب كنه
-----------
سينا
 

sunrise

Member
امیدوارم بقیه دوستان جوابت رو بدن، من که نمی دم
اگه بلد بودي كه جواب ميدادي اين قدر تاپيك رو به انحراف نمي كشيدي ...
سینا جان، من مسولیت پذیر هستم، وگرنه به این دوستمون اون حرف رو نمی زدم
اين كار شما جز دلسردي هيچ كمك ديگه اي به من نكرد.
طول رشته رو ميگيري و توي يه if بررسي ميكني كه اگه بزرگتر از 10 هستش 10 حرف اول رو نشون بده و بقيه ش رو سه تا نقطه بزاره
سينا جان خيلي ممنون از لطفتون كه راهنمايي كرديد ولي باز هم همون مشكل رو كه با حروف فارسي گفتم داره يعني وقتي كه رشته خيلي طولاني شد آخرش به جاي حروف يه مربع مياره !!! من همين مشكل رو تو كدي كه با substr هم نوشته بودم داشتم. به هرحال بازم ممنون.
در ضمن، جواب سوال، اینی که شما میگی نیست
اميد جان خب اگه واقعاً جواب درست رو مي دوني بگو ...
به پست دوم این دوست عجول توجه کن و دوباره بخونش
من اصلاً عجول نيستم ... !!!
 

Mikhak

Active Member
ميتوني تو اين كد اخرين كاراكتري رو كه چاپ ميشه بررسي كني اگه مربع بود يه دونه به تعداد حلقه اضافه كني يا يه دونه كم كني كه در اين صورت صد در صد جواب ميده
-----------------------
سينا
 

oxygenws

Active Member
بررسي كني اگه مربع بود يه دونه به تعداد حلقه اضافه كني
مگر ما کاراکتر مربع داریم؟؟؟ :)
اون کاراکتر، یک کاراکتری است که برای نشان دادن کاراکتر هایی که چاپ نمی شن (البته نه همشون) استفاده میشه. یعنی کاراکتر "مربع" که شما میگی، معادل یک کد اسکی نیست!!

اگه بلد بودي كه جواب ميدادي اين قدر تاپيك رو به انحراف نمي كشيدي ...
اميد جان خب اگه واقعاً جواب درست رو مي دوني بگو ...
من دو تا راه برای این مشکلت تو ذهنم هست. (البته به نظر من یکیش منطقا مشکل داره ولی از نظر تو مشکل نداره :) )
 

oxygenws

Active Member
راه اول:
قبل از چاپ رشته ای که سینا گفت، از دستور trim استفاده کنی. این کار باعث میشه اون کاراکتر مربع دیگه چاپ نشه اما مشکلش اینجاست که ممکنه یک کلمه رو نصفه چاپ کنه، یعنی مثل مثالی که خودت گفتی، بنویسه "مباحث مربوط به وین..."

راه دوم:
بعد از جدا کردن مثلا 10 کاراکتر اول رشته، مکان آخرین رویداد "فاصله" رو پیدا کنی و رشته رو تا اونجا قطع کنی و بعد از اون "..." بذاری. در این حالت، رشته فوق به صورت "مباحث مربوط به..." در می آید که به نظر من زیبا تر می باشد. مشکل این روش که قابل حل می باشد، اینجاست که، باید چک شود که آیا مکان مثلا دهم (یا دهم به علاوهء یک) برابر "فاصله" یا "نقطه" یا "ویرگول" یا ... (کد کاراکترش کوچکتر از 128) بوده یا نه، اگر بوده که هیچی و اگر نبوده، تا آخرین رویداد "فاصله" حذف می کنیم. (توجه کن که در قوانین علامات سجاوندی و روش های نگارش داریم که بعد از هر علامت، مثل "نقطه" یا "ویرگول" یا ... باید یک "فاصله" بگذاریم. در این صورت، روش فوق، نقصی ندارد.)
 

Mikhak

Active Member
مربع كد اسكي نداره ولي حروف كه كد اسكي دارن
يعني ميتونه بررسي كنه اگه حروف نبود فلان كار رو انجام بده
كه در اين مورد هم فكر كنم يه نقصي مثل روش اول تو داشته باشه
----------------
سينا
 

sunrise

Member
دوستان از هر دو تون بسيار متشكرم. من امتحانش مي كنم روش هايي رو كه گفتيد ، گه بازم كشلي پيش اومد دوباره مزاحمتون ميشم.
 

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

بالا