تالار گفتمان nCIS.ir

نسخه‌ی کامل: ویرایش چند لینک در یک متن
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان
چه طور میشه داخل یه متن که توش چندتا لینک هست و همه ابتدای اونها مثل هم ان رو تشخیص داد و برای هرکدوم آخرشون یه کارکتر اضافی به صورت تصادفی درج کرد؟
واقعا مورد عجیبی شده برام
ممنون میشم راهنمایی بفرمایید
مثال: اضافه کردن =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
);
بذارید براتون مثال بزنم :
مثلا تویمتن زیر 

"سلام به سایت http://abadanads.ir/panels.html خوش آمدید ،شما از آدرس http://abadanads.ir وارد شدید.
برای تماس با ما میتوانید به آدرس http://abadanads.com مراجعه کنید . با سپاس "

اینو چیکارمیشه کرد؟
خوب شما الان چیو به چی میخواین تبدیل کنید توی متن بالا؟
من میخوام اول لینک های موجود توی متن رو پیدا کرده و سپس علامت سوال و یک حرف به صورت تصادفی به ادامه شون اضافه کنم مثلا (n?)
$alphabet = range('a', 'z');
$string = preg_replace(
    '#<a(.*?)href="(.*?)"(.*?)>(.*?)</a>#is',
    '<a$1href="$2?' . $alphabet[array_rand($alphabet)] . '"$3>$4</a>',
    $string
);
ممنون که پاسخ میدید
متنی که من دارم دقیقا چیزیه که نوشتم ها
یعنی توی تگ نیست و به همین صورته http://abadanads.ir یا http://abadanads.ir/panels.html اینا هم به همون روش میشه درست کرد؟!
آقا من با توجه به کد جنابعالی
این طوری نوشتمش
$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>';