ورود

نسخه کامل مشاهده نسخه کامل : چگونگی کنترل محتوای textarea



parisml
11-07-2007, 08:48
سلام

می دونید چطوری میشه با استفاده از php محتوای دریافتی از دیتابیس رو که در فرم به صورت textarea گرفته

شده مدیریت کرد؟(دیتا بیس mysql)

منظورم از مدیریت، پاراگراف بندی متن دریافتی و یا تغییر فونت اونه، چون متنی که از دیتابیس فراخوانی میشه

به صورت یه فیلد از جدوله که فقط مجموعه ای از کاراکترهاست که دنبال هم و بدون هیچ فاصله ای قرار می

گیرند که من می خوام این متن رو به دلخواه خودم پاراگراف بندی کنم یا فونت و سایر مشخصاتش رو تغییر بدم

my friend
11-07-2007, 09:04
من تا حالا با این مشکل مواجه نشدم.
کدی که نوشتی رو بزار ببینمش. ( کدی که رو db ذخیره میکنه و کدی که میخونه + نتیجه ای که به مرورگر پس از خوندن از db ارسال میکنه. )

parisml
11-07-2007, 09:56
این کدی که فیلد textarea به نام newsرو تو DB ذخیره می کنه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این هم کد فراخوانی از دیتابیس:(فیلد مورد نظرrow2


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


این هم خروجی:

رفتار عجيب و در عين حال مخرب يك ويروس جديد، بسياري از شركت‌هاي امنيت IT را به واكنش‌هاي جدي و اعلام هشدار سريع به كاربران اينترنت واداشته است. به گزارش ايسنا، تروژان BotVoice.A كه براي نخستين بار توسط آزمايشگاه‌هاي امنيتي شركت پاندا، كشف شد، با نفوذ و آغاز فعاليت خود در سيستم‌ها، با صدايي بلند فرياد مي‌زند كه رايانه‌ي شما مورد حمله‌ي من قرار گرفته و كليه‌ي فايل‌هاي سيستمي ‌و ساير اطلاعات موجود در‌ هارد ديسك در حال از بين رفتن است. اين كد مخرب با ابراز تاسف از اين مساله، از كاربران مورد حمله عذرخواهي كرده و براي آن‌ها روز خوبي را آرزو مي‌كند! جملات فوق براي چندين بار و به صورت پي در پي ادا مي‌شوند تا هنگامي‌ كه تمام اطلاعات ذخيره شده در ديسك سخت رايانه مورد حمله به صورت ناگهاني و در برابر چشمان بهت زده كاربران، پاك شده و به صورت كامل از بين بروند. البته BotVoice.A در برخي از حملات خود، كليه اطلاعات سيستمي‌ رايانه را از بين نمي‌برد، اما با ايجاد تغييرات گسترده در رجيستري سيستم عامل و اختلال شديد در عملكرد رايانه‌ها به غير فعال شدن كليه‌ي برنامه‌هاي نصب شده و عدم دسترسي به task manager منجر مي‌گردد. بنا بر اعلام پاندا، اين كد مخرب جديد، علاوه بر پاك كردن اطلاعات موجود در رايانه و تمسخر كاربران مورد حمله خود، قادر است با انجام يك تخريب ضربتي و ناگهاني و تنها در عرض چند دقيقه، سيستم‌ها را از كار انداخته و شناسايي خود را عملا غير ممكن كند؛ بنابراين در چنين مواردي بهترين اقدام حفاظتي، استفاده از فن آوري‌هاي امنيت پيشگيرانه براي شناسايي و خنثي سازي كدهاي مخرب ناشناخته و بسيار جديد است. بر اساس اين گزارش از راه‌هاي انتشار اين تروژان مي‌توان به شبكه‌هاي P2P، حافظه‌هاي جانبي قابل اتصال به پورت‌هاي ورودي سيستم و نيز دانلود فايل‌هاي آلوده به شكل خودكار و يا توسط كاربر، در هنگام جست‌وجو در اينترنت، اشاره كرد. كارشناسان امنيتي براي رديابي و پيشگيري سريع اين كد خطرناك، استفاده از برنامه‌هاي آنلاين NanoScan و TotalScan را به كليه كاربران اينترنت توصيه مي‌كنند

همین طور که میبینید جملات خروجی پشت سر هم و بدون هیچ گونه انعطافی قرار می گیرند و مطالعه اون رو

سخت می کنند، هدف من اینه که یه قالب دلخواه به خروجی بدم، مثلا بین جمله ها فاصله بذارم یا پارا گراف

ایجاد کنم. لازم به ذکره که پاراگراف بندی در هنگام ورود متن در فیلد هیچ تاثیری در خروجی نداره یعنی اگه اونجا

پاراگراف بذارم تو خروجی نشون نمیده و باز هم جملات رو پشت سر هم نشون میده

با تشکر


[/RIGHT]

my friend
11-07-2007, 12:24
من از این روش استفاده میکنم...

بعد از:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته خط دوم باید سر خط باشه و قبلش فاصله یا تب نباشه:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

parisml
12-07-2007, 10:50
خیلی ممنونم از راهنمایی تون

shamsoft
12-07-2007, 13:03
البته مي تونستي مقداري كه از ديتابيس بيرون مياد رو يه بار از تابع nl2br() رد كني بعد چاپش كني. اين جوري هم درست ميشه

my friend
12-07-2007, 13:36
آره ، این تابع اونموقع به ذهنم نیومد.
کارش از اونی که من نوشتم سریعتر هست.

natanail2001
12-07-2007, 15:07
خیلی ممنونم از راهنمایی تون

مشكلتون حل شد؟
البته با nl2br كاراكتر خط جديد اعمال ميشه اما الان اگه كاراكتر ها بيشتر از 1 فاصله داشته باشند باز هم درست نشون داده ميشه؟ (مثل متن زير)

"متن آزمايشي ..."


؟؟؟؟؟ چه باحال لطفا به سورس اين صفحه يه نگاهي بياندازين (خط 2248 يا همون اطراف). متن آزمايشي رو درست نشون نداده! البته من يه راه حل براي اين مساله پيدا كردم اما نميدونم شايد من دارم اشتباه ميكنم و اساسا چنين مشكلي براي شما وجود نداشته باشه! حالا اگه بين دو كلمه مثلا 10 تا فاصله بذارين هر 10 تا رو نشون ميده يا فقط يكي رو؟

ممنونم.

my friend
12-07-2007, 17:15
فقط یکی رو ، این یکی از خاصیت های بسیار خوب HTML هست...
برای گذاشتن چند فضای خالی پشت سر هم باید از   استفاده کرد.

parisml
14-07-2007, 09:03
از همه شما و راه حل های جا لبتون ممنونم

فقط یه سوال درباره تابع nlbr2 : این تابع بر چه اساسی خط جدید یا پاراگراف ایجاد میکنه ؟

یعنی فقط به ازای هر اینتری که تو ورودی زدیم یه پاراگراف درست می کنه یا شرایط دیگه ای رو هم پذیراست؟

اگه بشه توابع بیشتری رو برای کار با رشته ها مخصوصا قالب بندی اونها معرفی کنید،ممنون میشم..

natanail2001
18-07-2007, 12:37
فقط یکی رو ، این یکی از خاصیت های بسیار خوب HTML هست...
برای گذاشتن چند فضای خالی پشت سر هم باید از   استفاده کرد.

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

natanail2001
18-07-2007, 12:52
از همه شما و راه حل های جا لبتون ممنونم

فقط یه سوال درباره تابع nlbr2 : این تابع بر چه اساسی خط جدید یا پاراگراف ایجاد میکنه ؟

یعنی فقط به ازای هر اینتری که تو ورودی زدیم یه پاراگراف درست می کنه یا شرایط دیگه ای رو هم پذیراست؟

اگه بشه توابع بیشتری رو برای کار با رشته ها مخصوصا قالب بندی اونها معرفی کنید،ممنون میشم..


اين تابع فقط كاراكتر خط جديد (كه يك كاراكتر مثل بقيه كاراكتر هاست با يه كد اسكي ويژه) رو با <br> عوض ميكنه كه در زبان اچتمل به عنوان خط جديد تفسير ميشه. (پاراگراف <p></P> ايجاد نميكنه).
منظورتون از "شرایط دیگه" چيه؟ اگه منظورتون اينه كه يك رشته ای رو بدست آورديد و حالا ميخواين با يه تابع در php يا جاوا اسكريپت يا ... كاراكتر خط جديد (و نه <br> كه خودش 4 كاراكتره يا &nbsp; كه 6 كاراكتره) بهش اضافه كتيد، اين شدنيه.
برای آشنايی با تمام توابع موجود برای كار با رشته ها در php توصيه ميكنم به سايت رسميش ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) سر بزنيد و حتما فايل .chm انگليسيش رو دانلود و مطالعه كنيد (6 مگ). ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
موفق باشيد.