View Full Version : سوال: این دو دستور برابرعمل می کنند در این کد
h.alizadeh
جمعه 07 آبان 1389, 18:15 عصر
سلام،
آیا این دو کد برابرند؟
$j= str_replace("\n","\\n",$j);
$j = ereg_replace("\n","\\n",$j);
ممنون
mohmadd
جمعه 07 آبان 1389, 19:49 عصر
هر دو یه کاری انجام میدن . ولی با دومی میشه عبارت منظم هم نوشت .
دومی منسوخ شده میتونید به جاش preg_replace استفاده کنید .
http://ir.php.net/manual/fa/function.preg-replace.php
bestirani2
جمعه 07 آبان 1389, 21:28 عصر
زمانی که نیازی به عبارت منظم نیست از مورد اول استفاده کنید تا سرعت بیشتری داشته باشید
h.alizadeh
شنبه 08 آبان 1389, 00:23 صبح
من این دستور رو با preg_match نوشتم بهم اررور داد:
Warning: preg_match() [function.preg-match]: Empty regular expression in
کدم:
$j = preg_match_replace("\n","\\n",$j);
پس توی این مورد مثل همند.
ممنون
mohmadd
شنبه 08 آبان 1389, 01:02 صبح
اصلا ما چنین تابعی نداریم
تابع preg_replace مثل تابع str_reaplce عمل میکنه .
$str = str_replace("salam", "Hello", "salam World!");//works ...
$str = str_replace("salam", "Hello", "SALAM World!");//dont worksمثال اول کار میکنه ولی مثال دومی چون با پارامتر سوم با حروف بزرگ نوشته شده . کار نمیکنه
اما میشه از تابع str_ireplace استفاده کرد که مثل تابع str_replace هست وبین حروف کوچک و بزرگ فرقی نمیزاره :
$str = str_ireplace("salam", "Hello", "SALAM World!"); i به معنای Case-insensitive هستش
در اینجا هم اگه در پارامتر سوم hi , salam و hey مچ بشن پارامتر دوم جایگزین میشه
$str = preg_replace('@(hi|salam|hey)@i','Hello',"hi world!");
بازم هر مشکلی بود بگو
funpatogh
شنبه 08 آبان 1389, 21:42 عصر
توی ereg برای شروع و پایان 2 کاراکتر مثل هم لازم نیست اما توی preg_match که جدید تر هستش حتما برای شروع و پایان 2 کاراکتر مثل هم لازم هست مثل / ,#,@ و ....
h.alizadeh
یک شنبه 09 آبان 1389, 00:23 صبح
ممنونم از لطفتون.ببخشید توی کدم اشتباهی match رو هم نوشته بودم منظورمpreg_replaceبود.
حالا اگه بخوایم این دستور رو :
$j = ereg_replace("\n","\\n",$j);
با preg_replaceبنویسیم چی شکلی میشه؟
من اینجور نوشتم اررور میده:
$j = preg_replace("\n","\\n",$j);
مگه رگولراکسپرشن n\ خودش n\نمیشه؟
پیام میده که :
Warning: preg_replace() [function.preg-replace]: Empty regular expression in
!!
h.alizadeh
یک شنبه 09 آبان 1389, 00:25 صبح
توی ereg برای شروع و پایان 2 کاراکتر مثل هم لازم نیست اما توی preg_match که جدید تر هستش حتما برای شروع و پایان 2 کاراکتر مثل هم لازم هست مثل / ,#,@ و ....
میشه با مثال بگید منظورتون رو نفهمیدم:خجالت:
funpatogh
یک شنبه 09 آبان 1389, 00:46 صبح
ممنونم از لطفتون.ببخشید توی کدم اشتباهی match رو هم نوشته بودم منظورمpreg_replaceبود.
حالا اگه بخوایم این دستور رو :
کد PHP:
$j = ereg_replace("\n","\\n",$j);
با preg_replaceبنویسیم چی شکلی میشه؟
من اینجور نوشتم اررور میده:
کد PHP:
$j = preg_replace("\n","\\n",$j);
مگه رگولراکسپرشن n\ خودش n\نمیشه؟
پیام میده که :
Warning: preg_replace() [function.preg-replace]: Empty regular expression in
$j = preg_replace('/\n/','\\n',$j);
اینو تست کنید ببینید جواب میدهد
اینم مثال برای شما
<?php
ereg("mohammad","hello dear,i am mohammad jamshidi",$match);
echo "<pre>";
print_r($match);
echo "</pre>";
preg_match("/mohammad/","hello dear,i am mohammad jamshidi",$match);
echo "<pre>";
print_r($match);
echo "</pre>";
?>
h.alizadeh
یک شنبه 09 آبان 1389, 01:44 صبح
$j = preg_replace('/\n/','\\n',$j);
اینطوری درست شد.ایول
------
آهان پس منظورتون ه برایpreg_match متن موردنظرباید در بین \\ باشه (file://\\ باشه) همیشه؟
funpatogh
یک شنبه 09 آبان 1389, 02:13 صبح
بله
حالا یا // یا ## یا @@ , ...
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.