چطور می تونم محتویات بین دو تگ خاص رو در دیتابیس بخونم.

irmetal

Member
با سلام.
من می خوام یه وبلاگ بسازم.
این وبلاگ من مثلا به این صورت توی دیتا بیس ذخیره میشه:
PHP:
[LEFT][LTR] 
<title>
عنوان
</title>
<weblog>
محتوای نوشته
</weblog>
[/LTR][/LEFT]
اینا یه مثال کوچولو بود...فکر کنم این برچسب ها با زبان ایکس ام ال هستن...
حالا می خواستم ببینم که چطوری این برچسب ها رو از توی دیتابیس (که مای اس کیو ال هستش) محتویات بین اونها رو استخراج کنم و هر کودوم رو در بخش اچ تی ام ال مربوطه ی صفحه برای نمایش ستفاده کنم.
چون می خوام به کاربرا اجازه ی تغییر قالب رو بدم نیاز به همچین چیزی دارم...
البته بلدم محتویات رو از یه فایل ایکس ام ال بخونم...ولی نمی دونم چیکار محتویاتی کنم که از دیتابیس استخراج شده!لطفا حتی اگر روشی که من انتخاب کردم اشتباهه واسم توضیحاتی برای این کار بدین.
با تشکر.
 

k2-4u

Well-Known Member
این کار بهینه نیست
شما بهتره . هر قسمت رو در یک . فیلد جدا در database
قرار بدی برای مثال
HTML:
[left][ltr] 
<title>
عنوان
</title>
<weblog>
محتوای نوشته
</weblog>
[/ltr][/left]
به جای اینکه در دیتابیس یک فیلد بگذاری و محتویات بالا رو داخلش بریزی
بهتره 2 تا فیلد داشته باشه .
که در یکی . " محتوای نوشته" قرار بگیره و در دیگری "عنوان"
اگر 40 تا فیلد هم باشه . باز هم مشکلی نیست و این روش مناسبه

.ولی اگر می خواهید این ها رو جدا سازی کنید .
2 روش دارین
1 . که روش حرفه ای است و استفاده از توابع XML در php رو شامل میشه
http://ir.php.net/xml

2. روش بعدی استفاده از regular expression است
که به صورت زیره
PHP:
$str='<title>salam khobi</title>';

if(preg_match("/<title>(.*)</title>/i",$str,$out){
	echo $out[1];// echo salam khobi 
}
 

irmetal

Member
البته دوست من از لطفتون واقعا ممنونم.
روش اول رو بلدم که همون عبارات منظم توی زبان برنامه نویسی پرل هستش.
من هم توی دیتابیس همین کار رو کردم یعنی اینکه فیلد ها به صورت جدا جدا هستش...ولی وقتی که کاربر می خواد قالب رو ویرایش کنه نیاز به این هست که محتویات چند تا فیلد در یک تکست اریا نشون داده بشه و هر قسمت بین تگ های جدا کننده ی خودش باشه... و بعد از اینکه کاربر اونها رو ویرایش کرد دوباره موقع ذخیر سازی با استفاده از این توابع مثل preg_match و...جداسازی بشه و توی فیلد مربوط به خودشذخیر بشه...
ولی کار ایکس ام الیش رو زیاد درک نمی کنم!یا بهتره اینه که بگم روش کارش رو بلد نیستم.روشی رو که من با استفاده از ایکس ام ال بلدم فکر نمی کنم از نظر سرعت اجرا برتری نسبت به روش اول داشه باشه!لطفا اگر میشه روش و مفهوم کار رو به این صورت که من روش اول رو توضیح دادم بیان کنید.
با تشکر.
 

جدیدترین ارسال ها

بالا