PDA

View Full Version : Warning: preg_replace() [function.preg-replace]: No ending delimiter '#' found



delavar12
یک شنبه 27 بهمن 1392, 14:39 عصر
سلام عزیزان

کد زیر رو دارم. این کد مال یک اسکریپت ارسال ایمیل هست. بعد از اینکه دکمه ارسال فرم را میزنم خطای زیر رو میده :
Warning: preg_replace() [function.preg-replace]: No ending delimiter '#' found in /home/public_html/email.php on line 106



##############################
$main='';
foreach($_POST as $k => $v)
{
$lists=$body;
$lists=preg_replace('#field',$k,$body);
$lists=preg_replace('#info',$v,$lists);
$main .=$lists;
}
#############################
$ip= $_SERVER['REMOTE_ADDR'];
$link=$_SERVER['HTTP_REFERER'];
$footer=preg_replace('#ip',$ip,$footer);
$footer=preg_replace('#link',$link,$footer);
$body=$top.$main.$footer;
mail($to,$subject,$body, $header);
header("location: $redirect")

لطفا کمک کنید . چکار کنم مشکل برطرف بشه. من هیچی از PHP نمیدونم
خیلی ممنونم

Jarvis
یک شنبه 27 بهمن 1392, 17:18 عصر
دوست عزیز ، لطفا عنوان تاپیک خودتون رو تصحیح کنید.

MMSHFE
یک شنبه 27 بهمن 1392, 21:35 عصر
اینو تست کنید:


##############################
$main='';
foreach($_POST as $k => $v)
{
$lists=$body;
$lists=preg_replace('\#field\',$k,$body);
$lists=preg_replace('\#info\',$v,$lists);
$main .=$lists;
}
#############################
$ip= $_SERVER['REMOTE_ADDR'];
$link=$_SERVER['HTTP_REFERER'];
$footer=preg_replace('\#ip\',$ip,$footer);
$footer=preg_replace('\#link\',$link,$footer);
$body=$top.$main.$footer;
mail($to,$subject,$body, $header);
header("location: $redirect")

MMSHFE
یک شنبه 27 بهمن 1392, 21:37 عصر
توابع Regex توی Pattern نیاز به یک علامت برای مشخص شدن شروع و پایان الگو دارن که میتونه هر کارکتری باشه ولی باید اول و آخرش تکرار شده باشه و چون اولین کارکتر شما # بوده انتظار یک # هم در آخر داشته که من با قراردادن \ در اول و آخر بهش گفتم # جزو عبارته و مشخص کننده شروع Pattern نیست. به علامت شروع و پایان Pattern هم Delimiter گفته میشه.