رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ویرایش چند لینک در یک متن
#1
سلام دوستان
چه طور میشه داخل یه متن که توش چندتا لینک هست و همه ابتدای اونها مثل هم ان رو تشخیص داد و برای هرکدوم آخرشون یه کارکتر اضافی به صورت تصادفی درج کرد؟
واقعا مورد عجیبی شده برام
ممنون میشم راهنمایی بفرمایید
پاسخ
تشکر شده توسط:
#2
مثال: اضافه کردن =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
);
پاسخ
تشکر شده توسط: mohsen6500
#3
بذارید براتون مثال بزنم :
مثلا تویمتن زیر 

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

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

چرا؟
پاسخ
تشکر شده توسط:
#9
خوب شما گفته بودین لینکها. الان اون *. که گذاشتین شامل کارکترهای 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>';
پاسخ
تشکر شده توسط: mohsen6500




کاربران در حال بازدید این موضوع: 1 مهمان