سلام دوستان
چه طور میشه داخل یه متن که توش چندتا لینک هست و همه ابتدای اونها مثل هم ان رو تشخیص داد و برای هرکدوم آخرشون یه کارکتر اضافی به صورت تصادفی درج کرد؟
واقعا مورد عجیبی شده برام
ممنون میشم راهنمایی بفرمایید
مثال: اضافه کردن =http://mysite.com/go.php?url به ابتدای HREF تمام لینکهایی که با کلاس test شروع میشن.
$string = preg_replace(
'#<a class="test"(.*?)href="(.*?)">(.*?)</a>#is",
'<a class="test"$1href="http://mysite.com/go.php?url=$2">$3</a>',
$string
);
خوب شما الان چیو به چی میخواین تبدیل کنید توی متن بالا؟
من میخوام اول لینک های موجود توی متن رو پیدا کرده و سپس علامت سوال و یک حرف به صورت تصادفی به ادامه شون اضافه کنم مثلا (n?)
$alphabet = range('a', 'z');
$string = preg_replace(
'#<a(.*?)href="(.*?)"(.*?)>(.*?)</a>#is',
'<a$1href="$2?' . $alphabet[array_rand($alphabet)] . '"$3>$4</a>',
$string
);
آقا من با توجه به کد جنابعالی
این طوری نوشتمش
$string = "سلام به سایت http://abadanads.ir/panels.html خوش آمدید ،شما از آدرس http://abadanads.ir وارد شدید.
برای تماس با ما میتوانید به آدرس http://abadanads.com مراجعه کنید . با سپاس ";
$alphabet = range('a', 'z');
$string = preg_replace(
'#http://(.*?)#is',
'http://$1?' . $alphabet[array_rand($alphabet)] ,
$string
);
echo '<div align="right" style="direction:rtl">'.$string.'</div>';
ولی خروجیش این شکلی میشه!
سلام به سایت http://?zabadanads.ir/panels.html خوش آمدید ،شما از آدرس http://?zabadanads.ir وارد شدید. برای تماس با ما میتوانید به آدرس http://?zabadanads.com مراجعه کنید . با سپاس
چرا؟
خوب شما گفته بودین لینکها. الان اون *. که گذاشتین شامل کارکترهای Space و... هم میشه. بهتره این مدلی کار کنید:
$string = "سلام به سایت http://abadanads.ir/panels.html خوش آمدید ،شما از آدرس http://abadanads.ir وارد شدید.
برای تماس با ما میتوانید به آدرس http://abadanads.com مراجعه کنید . با سپاس ";
$alphabet = range('a', 'z');
$string = preg_replace(
'#http://([^s]*)#i',
'http://$1?' . $alphabet[array_rand($alphabet)],
$string
);
echo '<div align="right" style="direction:rtl;">' . $string . '</div>';