php tag parser

bono056

Member
سلام
من یه تکست دارم که به صورت متن تو db ذخیره شده. داخل متن یه سری تگ هایی مثل [ code ] , [/code] وجود داره. یه تابه میخوام که این تگ ها رو parse کنه. خود php همچین تابعی داره؟ که یه سری تگ های شروع و انتها براش تعریف بشه و محتویات این تگ ها رو جدا کنه و خروجی بده.
کسی میتونه راهنمایی کنه؟ فکر کنم کسایی که CMS کار کردن با این تابع ها هم آشنا باشن.
 

sharktech

کاربر فعال
با این تابع میتونی انجامش بدی :

PHP:
<?php

function find($string,$opener,$closer)
{
    $part1 = explode($opener,$string);
    $part2 = explode($closer,$part1[1]);
    $result = $part2[0];
    return $result;
}

echo find('[code]your string[/code]','[code]','[/code]');

// output : your string
?>

البته با regular expression و تابع preg_replace خود php هم میشه که اگه جستجو کنی به جواب میرسی.
 

bono056

Member
ممنون. برای چند تا تگ هم جواب میده؟ مثل:
کد:
[tag]value1[/tag]
[tag]value2[/tag]

میخوام خروجی بصورت یه آرایه برگرده. خود PHP تابعی برا اینکار نداره؟
 

bono056

Member
ممنون. ولی این کار برای چند تگ جواب نمیده.
کد:
[tag]value1[/tag]
[tag]value2[/tag]

میخوام خروجی بصورت یه آرایه چند بعدی برگرده. خود PHP تابعی برا اینکار نداره؟
 

D.A.V.O.O.D

Member
PHP:
<?php
$Tag_Name = "tag";
$Str = '[tag]value1[/tag][tag]value2[/tag]';

if( $j = preg_match_all("!\[$Tag_Name\](.*?)\[/$Tag_Name\]!si" , $Str , $M ) )
{
    echo '<pre>';
    echo print_r($M);
    echo '</pre>';
}  
?>
 
آخرین ویرایش:

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

بالا