شما عضو این انجمن نبوده یا وارد نشده اید. لطفا برای مشاهده کامل انجمن و استفاده از آن وارد شوید یا ثبت نام کنید .
باشگاه کاربران روماک
نمایش قسمتی از متن و پاراگراف با php - نسخه‌ی قابل چاپ

+- باشگاه کاربران روماک (https://forum.romaak.ir)
+-- انجمن: انجمن طراحی سایت و برنامه نویسی (https://forum.romaak.ir/forumdisplay.php?fid=78)
+--- انجمن: کد نویسی (https://forum.romaak.ir/forumdisplay.php?fid=79)
+---- انجمن: PHP (https://forum.romaak.ir/forumdisplay.php?fid=46)
+---- موضوع: نمایش قسمتی از متن و پاراگراف با php (/showthread.php?tid=395)



نمایش قسمتی از متن و پاراگراف با php - saberi - ۹۴/۶/۲۳

یکی از امکانات و در واقع تکنیک هایی که ممکن است در برنامه نویسی صفحات وب با php کاربرد زیادی داشته باشد، انتخاب و نمایش قسمتی از یک متن یا پاراگراف است که می تواند به فرض به عنوان پیش نمایش مطالب یا اهداف دیگر مانند نمایش قسمتی از یک پاراگراف به هنگام جستجو در سایت و... مورد استفاده قرار گیرد، خوشبختانه انجام این کار بسته به شرایط و نیاز شما، به چند شیوه (از طریق توابع php یا در هنگام پرس و جو از دیتابیس) قابل انجام دادن است که در این آموزش در حد امکان به تفصیل راجب آن خواهیم گفت.
نمایش قسمتی از پاراگراف به صورت شمارش کلمه

یکی از روش های نمایش قسمتی از متن یا پاراگراف در php، تعیین تعداد و میزان کلماتی است که قصد داریم در خروجی نشان داده شوند، برای این کار از سه تابع explode ، implode و array_splice استفاده می کنیم که در تابع زیر این سه را باهم ترکیب کرده ایم.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
برای فراخوانی تابع، کافی است پاراگراف مورد نظر را در یک متغیر تعریف و متغیر را (به عنوان آرگومان اول) به همراه تعداد کلمات مورد نظر (به عنوان آرگومان دوم) و به صورت زیر فراخوانی کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
به این صورت در خروجی، تنها 5 کلمه اول از مقادیر متغیر فرضی string را خواهیم داشت.
توضیح:
- تابع explode با دریافت یک مقدار آرگومان به عنوان جداکننده (در اینجا فضای خالی یا " ")، متن مورد نظر را به صورت آرایه ای از کلمات تبدیل می کند.
- در قسمت بعدی، تابع implode مجددا آرایه ها را تبدیل به یک رشته می کند، البته در اینجا array_splice باعث می شود که تنها بخش خاصی از متن مورد نظر به خروجی ارسال شود.
نکته: برای محاسبه تعداد کلمات موجود در آرایه، می توانید از sizeof هم استفاده کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
به این صورت می توانید برنامه خود را هوشمند تر سازید؛ به فرض اگر تعداد کلمات یک متن از مقادیر مورد نظر شما بیشتر بود، قسمت array_splice اجرا شود و یا ایده های دیگری که ممکن است به ذهنتان برسد.
نمایش قسمتی از متن به صورت شمارش حروف  

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
البته این روش برای کلمات فارسی چندان کاربردی نیست، چرا که هر حرف فارسی در تابع substr دو کاراکتر حساب می شود و از این گذشته، در این تابع گاهی مواقع کاراکترهای غیر استاندارد در انتهای متن مورد نظر به خروجی داده می شود که این موضوع به دلیل یونیکد حروف فارسی است.

نمایش قسمتی از متن و پاراگراف در MySQL

علاوه بر روش های بالا که صرفا متکی بر کدهای php و توابع آن هستند، در mysql و به هنگام پرس و جو یا همان query نیز این امکان وجود دارد که بتوانیم نتایج را محدود به تعداد کلمات خاصی کنیم، برای این کار از تابع SUBSTRING و به شکل نمونه زیر استفاده می کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در مثال بالا، با استفاده از تابع SUBSTRING در MySQL از جدول فرضی articles، ستون text کاراکترهای 1 تا 30 را انتخاب کرده ایم، البته این تابع نیز نسبت به حروف فارسی در مقایسه با حروف انگلیسی، رفتاری متفاوت دارد.