سلام
چگونه میتوان متنی را در یک متن حاوی کدهای html جستجو کرد به صورتی که برخی تگ های html و محتوایش مثل تگ a یا img را در نظر نگیرد و از آنها گذر کند و در صورتی که با متن تعریف شده مطابقت داشت آن را جایگزین متن دیگری کند.
با تشکر
سلام
چگونه میتوان متنی را در یک متن حاوی کدهای html جستجو کرد به صورتی که برخی تگ های html و محتوایش مثل تگ a یا img را در نظر نگیرد و از آنها گذر کند و در صورتی که با متن تعریف شده مطابقت داشت آن را جایگزین متن دیگری کند.
با تشکر
سلام ، یه مثال از متن و رشته ای که قراره توش پیدا بشه بزن...
مثلا شما کد html همین صفحه رو در نظر بگیرید بعد "سلام" یا "سلام علیکم" رو توش پیدا کنه و "علی" جایگزین کنه.
ولی من میخواهم مثلا وقتی این "سلام" لینک شده بود یا به عنوان خصوصیت title یک تگ img تعریف شده بود کاری بهش نداشته باشه و جایگزین نشه.
$t = "<html><head></head><body><img title='Salam' />Salam<a href='alakie'>Salam</a></body></html>";
$orgstring = "Salam";
$replacementstring = "Ali";
$o = explode($orgstring,$t);
$output = $o[0];
for($i=1;$i<count($o);$i++){
if(preg_match('/<img *([A-z]|\=)*title *= *(\'|\")$/i',$o[$i]) || preg_match('/<a *([A-z]|\=| |\'|\")*>$/i',$o[$i]))
$output.=$replacementstring.$o[$i];
else
$output.=$orgstring.$o[$i];
}
$output.=$o[count($o)-1];
echo $output;
متغییر t کد html اصلیه ، متغییر orgstring رشته ای که باید جایگزین بشه و replacementstring هم رشته ی که به جای رشته ی اولیه جایگزین میشه.
اگه مشکلی داشت بگو.
با جاوا اسکریپت هم به همین راحتی میشه این کارو کرد.
سلام
ممنون برای راهنمایی تون اما چند تا مشکل داره! یکی این که بزرگ و کوچک بودن حروف تاثیری در جستجو نداشته باشد و نکته بعدی که مهم تر هم هست اینه که شاید ما چند رشته رو برای جایگزینی انتخاب کنیم.
برای مثال:
"جوان ایرانی" جایگزین "جوان خوب ایرانی" شود.
ممنون
function AnalyseHTML($t,$orgstring,$replacementstring){
$o = spliti($orgstring,$t);
$output = $o[0];
for($i=1;$i<count($o);$i++){
if(!(preg_match('/<img *([A-z]|\=)*title *= *(\'|\")$/i',$o[$i-1]) || preg_match('/<a *([A-z]|\=| |\'|\")*>$/i',$o[$i-1])))
$output.=$replacementstring.$o[$i];
else
$output.=$orgstring.$o[$i];
}
return $output;
}
$html = "<html><head></head><body>Ziggurat<IMG title='Salam' />Salam<a href='alakie'>Salam</a></body></html>";
$a1 = AnalyseHTML($html,"SalAm","Hi Ali");
echo AnalyseHTML($a1,"Ziggurat","HR.Ziggurat");
این تابع spliti توی پی اچ پی ۵ Deprecated شده!
جایگزینی براش وجود نداره؟
$o = preg_split('/'.$orgstring.'/i',$t);
تو گوگلم پیدا میشد...