• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بررسی محتوا textarea
#1
سلام
بنده میخوام اسکرپیتی بنویسم که بررسی کند کد وارد شده html است یا css..

فرض کنید کاربر در textarea کدهای خود را قرار داده حالا من میخوام بررسی کنم این html یا css یا مثلا js
این مورد چطور ممکنه که محتوا ببرسی بشه و به کاربر بگیم که html و ....
ممنون
  پاسخ
تشکر شده توسط :
#2
با استفاده از تابع preg_match تگ/نشانه های کدهای html، css یا javascript رو در متن مطابقت بدین.
فقط باید regex مناسب رو برای هرکدوم پیدا کنید.
مثلا برای کدهای html:
کد پی‌اچ‌پی:
if( preg_match('/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/'$text){ 
    return 
"HTML code";

به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط : ayoubsys Y.P.Y amir94
#3
با تشکر از شما
واقعا عالی بود

حالا مثلا میشه بین این کد ها با for جستجو کرد.

مثلا این کد هست:
کد پی‌اچ‌پی:
<html><body><div></div></body></html

بعد به هر < که رسید یه اینتر بزن و کد زیر رو چاپ کنه؟
آرایه میخواد؟ تابعی داره؟
کد پی‌اچ‌پی:
<html>
<
body>
<
div>
</
div>
</
body>
</
html
  پاسخ
تشکر شده توسط :
#4
خواهش.

کد پی‌اچ‌پی:
$text preg_replace("/<([^<]*)>/""$0\r\n",$text); 
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط : kasbookar amir94 ayoubsys
#5
سلام
اول اینکه خیلی عذر میخوام که وسط تاپیک شما وارد میشم کدی که دوست عزیزمون ارائه دادن کاملا درست و سالم هست ولی بهتره کمی تغییر توش بدیم و به جای "$0\r\n" از ثابت
کد پی‌اچ‌پی:
PHP_EOL 
استفاده بشه که بعدها با تغییر از ویندوز به لینوکس و بلعکس مشکل خاصی پیش نیاد

یک توضیح کوچیک هم درباره این ثابت برایدوست عزیزم امیر

نقل قول:در لینوکس برای اینکه خروجی html به خط بعد بره باید از \n استفاده شود ولی در windows برای اینکه خروجی به خط بعد بره باید از \r\n استفاده شود ، php یک ثابت به نام PHP_EOL تعریف کرده که وقتی در ویندوز PHP_EOL را صدا میزنید \r\n را بعنوان خروجی میده وقتی در لینوکس استفاده می کنید \n میده .
بازم عذرخواهی میکنم بابت تداخل در تاپیک شما

موفق و موید باشید
  پاسخ
تشکر شده توسط : amir94 sara147
#6
صرفاً جهت اطلاع: Angel

PHP_EOL در PHP 5.0.2 به بعد تعبیه شده، لذا اونایی که پروژه هاشون کلاً PHP 5 به بعد رو پشتیبانی می کنه می تونن اینطوری استفاده کنن:
کد پی‌اچ‌پی:
// PHP < 5.0.2
if (!defined('PHP_EOL'))
{
    if (
stristr(PHP_OS'WIN')) define('PHP_EOL'"\r\n");
    else if (
stristr(PHP_OS'DAR')) define('PHP_EOL'"\r");
    else 
define('PHP_EOL'"\n");


اینم سورس C برای ثابت PHP_EOL:
https://github.com/php/php-src/blob/mast.../php.h#L48
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : amir94 kasbookar
#7
(۱۳۹۵ شهریور ۲۰, ۰۲:۴۲ ق.ظ)kasbookar نوشته: بازم عذرخواهی میکنم بابت تداخل در تاپیک شما
ممنون که به تکمیل شدن پاسخ کمک کردین.
البته اون $0 نباید حذف بشه، چون قسمتی از متن که با regex مطابقت داره رو در جایگزینی استفاده میکنه.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط : kasbookar


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان