PDA

View Full Version : سوال: [Regex] دریافت محتویات یک div



امیـرحسین
دوشنبه 17 فروردین 1388, 14:53 عصر
سلام

من توی کار با Regex واقعا مشکل دارم! می خوام محتویات یک div رو تغییر بدم.
در واقع محتویات این div کدهای php و HTML هست که می خوام highlight کنم.

من این کد رو دارم ولی کار نمی کنه:

preg_replace('#<div class\="myCode">(.*?)</div>#s' , "" , $documentOutput);

لطفا کمک کنید تا کد رو اصلاح کنم.
درضمن برای highlight کردن کدها پیشنهاد خاصی دارید؟


ممنون
AHHP

eAmin
دوشنبه 17 فروردین 1388, 19:37 عصر
سلام.

اینکار یه خرده وقت گیر هست و انجام دادن اینکار بدون دونستن صحیح RegEx کاره بیهوده ای هست!
قائده ای هم که نوشتید، عملا هیچ کار رو انجام نمی ده.
قبلا اینکار رو با JavaScript انجام داده بودم، پیشنهاد می کنم اگر می خواید چندین زبان رو ساپورت کنه، از کدهای آماده استفاده کنید.
------------

1. روش کلی کار به این صورت هست، که کدها رو باید در تگ code قرار بدید، و بعد از اون به وسیله DOM در PHP محتوای درون تگ کد رو بدست بیارید و بریزید توی یک متغیر.
2. برای نوشتن قائده، برای اینکار باید کلمات کلیدی رو مشخص کنید که به چه رنگی بعد از پیدا شدن در بیان، و یا string ها، array ها و ... رو مشخص کنید که به چه رنگی باید باشن و ... به عنوان مثال این قائده رو ببینید:

preg_replace('#\b(for|function|if|while...)\b#' , "<font color=\"blue\">$1<\/font>" , $Code);
در صورت پیدا شدن یکی از کلمات کلیدی فوق، اونها رو به رنگ آبی در می یاره. شما می تونید بهتر از این هم عمل کنید و بصورت پیشرفته تر.

و برای بقیه ی موارد هم باید قائده ی مناسبی بنویسید تا به خوبی عمل کنه، و همچنین پرفورمانس بالاتری داشته باشه.

موفق باشید.

امیـرحسین
دوشنبه 17 فروردین 1388, 20:29 عصر
ممنون از توضیحاتتون، هدف اصلی من دریافت اطلاعات داخل تگ بود و برای highlight قصد داشتم از کلاسهای آماده PHP استفاده کنم.

حامد مصافی
سه شنبه 18 فروردین 1388, 09:48 صبح
\<div .*\>(?:.*)\<\/div\>

narsic
سه شنبه 18 فروردین 1388, 13:30 عصر
با سلام
دوست عزیز میتونید برای این کار از Java Script استفاده کنید .
در جاوا اسکریپت از این دستور استفاده کنید


window.document.getElementById(ِDIV_ID).innerHTML

موفق باشید

امیـرحسین
سه شنبه 18 فروردین 1388, 14:19 عصر
ممنون از همه بابت راهنمایی هاتون.
من از google prettify code استفاده کردم.