سلام وقت بخیر دوستان
من یه متنهایی دارم که توسط ادیتور های متن ذخیره شدن و به صورت html هست.
وقتی مثلا کلمه a رو سرچ میکنم تگ های html هم سرچ میشن. ولی مد نظرم متن های داخل تگ ها هست
پیشنهاد یا کدی هست که توسط php فقط متن های داخل تگ ها سرچ بشن نه خود تگها؟
و میخوام اون کلمات یافت شده مارک بشن.
سلام. به نظرم یه راه حل میتونه این باشه که کل متن رو تو یک متغیری ذخیره کنی ، بعد با استفاده از یک تابع حالا یا تو PHP یا JavaScript یا هرچی بیای تگ های html رو حذف کنی و حالا اون موردی که دنبالش میگردی رو توی این متن فیلتر شده جستجو کنی. این عبارت رو گوگل کن:
How to remove html tags from a given string
شما میتونین از عبارات منظم (REGEX) برای حذف تگهای HTML در جستجوها استفاده کنین.
برای مثال میشه از کد زیر استفاده کرد که هر عبارتی بین <...>
باشه رو حذف کنه:
preg_replace('/<[^>]*>/i', '', $content)
@BahmanMD
متاسفانه جواب نداد
برای مثال من تو کد های زیر دنبال کلمه a میگردم
<div class="card-body">
<h5 class="card-title text-primary">مرجع قانونی </h5>
<p class="card-text"></p><p dir="RTL" style="text-align:justify">this is a book</p>
<p dir="RTL" style="text-align:justify"><strong>یادآوری</strong>- <a class="btnbandmodal" href="" data-bs-toggle="modal" data-bs-target="#bandmodal" data-bandid="پیوست الف" data-baznegari="1390"> [پیوست الف]</a> this is a book.</p>
<p></p>
<hr class="bg-danger border-2 border-top border-warning">
</div>
و میخوام مارکشون کنم
تقریبا چیزی شبیه به این میشه:
$keyword = 'a';
$text = <<<EOF
<div class="card-body">
<h5 class="card-title text-primary">مرجع قانونی </h5>
<p class="card-text"></p><p dir="RTL" style="text-align:justify">this is a book</p>
<p dir="RTL" style="text-align:justify"><strong>یادآوری</strong>- <a class="btnbandmodal" href="" data-bs-toggle="modal" data-bs-target="#bandmodal" data-bandid="پیوست الف" data-baznegari="1390"> [پیوست الف]</a> this is a book.</p>
<p></p>
<hr class="bg-danger border-2 border-top border-warning">
</div>
EOF;
$textWithoutHtmlTags = preg_replace('/<[^>]*>/i', '', $text); // Or $textWithoutHtmlTags = strip_tags($text);
$highlightedKeyword = '<b style="color:red">' . $keyword . '</b>';
echo str_replace($keyword,$highlightedKeyword,$textWithoutHtmlTags);
@BahmanMD
برای نمونه من برای متن زیر جواب نگرفتم. مثلا برای کلمه "کشش"
<div class="card-body">
<h5 class="card-title text-primary">فهرست وسایل ایمنی برقی (الزامی) </h5>
<p class="card-text"></p><p style="text-align:center"><strong>جدول(الف-1)- فهرست وسایل ایمنی برقی</strong></p>
<table align="center" border="1" cellpadding="1" cellspacing="1" style="width:1000px">
<tbody>
<tr>
<td style="text-align:center">شماره ی بند</td>
<td style="text-align:center">وسایلی که باید کنترل شوند</td>
</tr>
<tr>
<td style="text-align:right; vertical-align:top; width:100px">
<p>5-2-2-2-2</p>
<p dir="ltr">5-7-3-4-الف</p>
<p dir="ltr">1-3-4-6- ب</p>
<p>3-3-4-6-ث</p>
<p>1-4-4-6- ث</p>
<p>1-4-4-6-ج</p>
<p>1-4-4-6-چ</p>
<p>4-5-4-6-الف</p>
<p>5-5-4-6-ب</p>
<p>5-5-4-6-پ</p>
<p>1-7-4-6-ث</p>
<p>2-7-4-6-ث</p>
<p>5-1-7-6</p>
<p>1-3-7-7</p>
<p>1-4-7-7</p>
<p>2-6-7-7</p>
<p>2-9-8</p>
<p>2-4-12-8</p>
<p>15-8-ب</p>
<p>3-5-9</p>
<p>1-6-9-ث</p>
<p>2-6-9</p>
<p>8-8-9</p>
<p>1-11-9-9</p>
<p>1-11-9-9</p>
<p>2-11-9-9</p>
<p>3-11-9-9</p>
<p>5-10-9</p>
<p>7-11-9</p>
<p>8-11-9</p>
<p>4-3-4-10</p>
<p>3-2-5-10-ب</p>
<p>1-3-5-10-ب-2</p>
<p>1-2-11-پ</p>
<p>1-1-5-12</p>
<p>4-8-12-پ</p>
<p>5-8-12</p>
<p>9-12</p>
<p>2-4-13</p>
<p>2-1-2-14-الف-2</p>
<p>2-1-2-14-الف-3</p>
<p>3-1-2-14-پ</p>
<p>1-2-2-14-ج</p>
<p>1-2-2-14-چ</p>
</td>
<td style="vertical-align:top">
<p>بررسی وضعیت بسته بودن درهای بازرسی اضطراری و دریچه های بازدید</p>
<p>وسیله متوقف کننده در چاهک</p>
<p>بررسی موقعیت غیرفعال وسیله مکانیکی</p>
<p>بررسی موقعیت بسته درها و دریچه های بازرسی داخل کابین</p>
<p>بررسی باز شدن یک در دسترسی به چاهک توسط یک کلید</p>
<p>بررسی موقعیت غیرفعال وسیله مکانیکی</p>
<p>بررسی موقعیت فعال وسیله مکانیکی</p>
<p>بررسی موقعیت کفی جمع شو در حالت کاملا جمع</p>
<p>بررسی موقعیت کاملا جمع متوقف کننده های متحرک</p>
<p>بررسی موقعیت کاملا باز متوقف کننده های متحرک</p>
<p>بررسی موقعیت بسته درهای دسترسی</p>
<p>بررسی موقعیت بسته درهای دسترسی</p>
<p>وسیله ی متوقف کننده در اتاق فلکه</p>
<p>بررسی قفل بودن درهای طبقات</p>
<p>بررسی وضعیت بسته بودن درهای طبقات</p>
<p>بررسی وضعیت بسته بودن لته های بدون قفل</p>
<p>بررس وضعیت بسته بودن در کابین</p>
<p>بررسی قفل بودن دریچه های اضطراری و در اضطراری کابین</p>
<p>وسیله ی متوقف کنننده روی سقف کابین</p>
<p>بررسی کشش نسبی غیرعادی طناب یا زنجیر در مورد سیستم آویز دو طنابه یا دو زنجیره</p>
<p>بررسی کشش طنابهای جبران</p>
<p>بررسی لوازم ضدجهش</p>
<p>بررس عملکرد ترمز ایمنی (پاراشوت)</p>
<p>شناسایی سرعت زیاد بدون فعال شدن وسیله حفاظتی اضافه سرعت به طرف بالا</p>
<p>شاسایی سرعت زیاد با فعال شدن وسیله حفاظتی اضافه سرعت به طرف بالا</p>
<p>بررسی آزاد شدن (از درگیری در آمدن) گاورنر</p>
<p>بررسی کشش در طناب فولادی گاورنر</p>
<p>بررسی وسایل حفاظتی در برابر اضافه سرعت کابین به سمت بالا</p>
<p>آشکارسازی حرکت ناخواسته کابین با درهای باز (اطلاعاتی)</p>
<p>کنترل فعال شدن وسیله محافظتی جلوگیری از حرکت ناخواسته کابین با درهای باز</p>
<p>بررسی برگشت به حالت اولیه ضربه گیرها</p>
<p>بررسی کشش وسیله ای که اطلاعات مربوط به موقعیت کابین را انتقال می دهد (کلیدهای حد نهایی)</p>
<p>کلید حد نهایی برای آسانسورهای کششی</p>
<p>بررسی قفل بودن در کابین</p>
<p>بررسی موقعیت چرخ دستی قابل برداشتن (برای حرکت نجات اضطراری)</p>
<p>بررسی کشش وسیله ای که اطلاعات مربوط به موقعیت کابین را انتقال می دهد (دور انداز اجباری)</p>
<p>بررسی شتاب منفی در ضربه گیر با کورس کمتر</p>
<p>شل شدگی طناب یا زنجیر در آسانسورهای با کشش مثبت</p>
<p>بررسی کنترل کلید اصلی توسط کنتاکتور قطع کننده مدار</p>
<p>بررسی هم سطح سازی و هم سطح سازی مجدد</p>
<p>بررسی کشش وسیله ای که اطلاعات مربوط به موقعیت کابین را انتقال می دهد (برای هم سطح سازی و هم سطح سازی مجدد)</p>
<p>وسیله متوقف کننده در عملکرد بازرسی</p>
<p>وسیله ی متوقف کننده روی سیستم محرکه آسانسور</p>
<p>وسیله متوقف کننده روی پانل (های) تست و اضطراری</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p></p>
<hr class="bg-danger border-2 border-top border-warning">
</div>
@ramin.mor47
شما در بک دارین این عمل رو انجام میدین و نمیتونین تگهای HTML رو مستثنی کنین، اگر به اینصورت میخواین میتونین اطلاعاتی که در بین <>
قرار دارن رو در یک آرایه قرار بدین، بعد متن ها رو هم در یک آرایه جدا و در متنها جستجو کنین و در نهایت به حالت اول که بصورت کدهای HTML بودن برگردونین.
اما این شاید خیلی منطقی نباشه و بهتر باشه در بک فقط مشخص بشه که کدام سلول جدول در دیتابیس دارای حرف جستجو شده هست و بعد توسط جاوااسکریپت در سمت کلاینت این حرف یا کلمه جستجو شده مارک بشن.
موفق و شاد باشید.
در جدول هم به صورت html ذخیره شده.
اگر امکان این مورد باشه که سمت بک اند این مورد جستجو صحیح انجام بشه که عالی. ولی خب هیچ ایده ای به ذهنم نمیرسه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟