من همیشه از این اجق وجقا وحشت داشتم. یجوری جادو میکنن
:دی
حالا از اون جالبتر الان نیم ساعته من میخوام کدهای firebierd رو برای خودم تحلیل کنم مغرم کرش میکنه وسطش !!من همیشه از این اجق وجقا وحشت داشتم. یجوری جادو میکنن:دی
من همیشه از این اجق وجقا وحشت داشتم. یجوری جادو میکنن :دی
اگر regex خوب و بهینه نوشته بشه. یک خط کد که موتور داخلی PCRE اجرا میکنه و برنامه نویسهای حرفه ای اون رو ساختند به مراتب بیشتر از ده خط کد نوشته شده توسط explode و حلقه و ... زمان میبره. اگر میخوایم بحث رو ببریم اون سمت میشه profile کرد و کدها رو با هم مقایسه کرد.
من همیشه از این اجق وجقا وحشت داشتم. یجوری جادو میکنن:دی
حالا از اون جالبتر الان نیم ساعته من میخوام کدهای firebierd رو برای خودم تحلیل کنم مغرم کرش میکنه وسطش !!
منم هر وقت میخوام برم سراغش کهیر میزنم .
text1<yek>;text2<do>;text3<se>;text4<chahar>;text5<panj>
([^<]*)
([^>]*)
(;|$)
(?:;|$)
<?php
$str = "text1<yek>;text2<do>;text3<se>;text4<chahar>;text5<panj>";
$str = substr($str, 0, -1);
$str = explode(">;", $str);
foreach ($str as $value) {
list($arg1,$arg2)=explode("<", $value);
// your database script goes here! with arg1 and arg2
}
?>
اینو من خیلی قدیم تو همین فوروم گذاشتم. الان احتمالاً تاپیکش رفته اون ته مها: http://php5.ir/download/regex.zipکابر عزیز firebird سلام علیکم
ظاهرا اینجا همه با الگو نویسی مشکل دارند و قبلا کار نکردند، اگه می شه یک آموزش خوب و کامل در رابطه با الگو نویسی در php در یک تاپیک دیگه بنویسید تا همه استفاده کنند.
با تشکر فراوان
Shahed <[email protected]>
Shahed <[email protected]>; [email protected]; Hamed <[email protected]>;
$query = preg_replace('/(?<=^|;)\\s*(?:(?:(?P<name>[^;<\\s]*)\\s*<(?P<email>[^>]*)>)|(?P<email>[^;]*));/', "INSERT INTO `table` (`name`, `email`) VALUES ('${name}', '${email}');\\n", $string);
اگه همچین رشته ای باشه:کدش میشهکد:Shahed <[email protected]>; [email protected]; Hamed <[email protected]>;
PHP:$query = preg_replace('/(?<=^|;)\\s*(?:(?:(?P<name>[^;<\\s]*)\\s*<(?P<email>[^>]*)>)|(?P<email>[^;]*));/', "INSERT INTO `table` (`name`, `email`) VALUES ('${name}', '${email}');\\n", $string);
[B]Warning[/B]: preg_replace() [[URL="http://localhost/mylab/array/function.preg-replace"]function.preg-replace[/URL]]: Compilation failed: two named groups have the same name at offset 68
آره. ایراد داره. دو تا named capture نمیتونن یه اسم داشته باشند.کد:[B]Warning[/B]: preg_replace() [[URL="http://localhost/mylab/array/function.preg-replace"]function.preg-replace[/URL]]: Compilation failed: two named groups have the same name at offset 68
$query = preg_replace_callback(
'/(?<=^|;)\\s*(?:(?:([^;<\\s]*)\\s*<([^>]*)>)|([^;]*));/',
create_function('$m', 'if ($m[3]) $m[2] = $m[3]; return "INSERT INTO `table` (`name`, `email`) VALUES (\'{$m[1]}\', \'{$m[2]}\');\n";'),
$string
);
$dbclass->addemail($email,$name);
اینو من خیلی قدیم تو همین فوروم گذاشتم. الان احتمالاً تاپیکش رفته اون ته مها: http://php5.ir/download/regex.zip
$query = preg_replace_callback(
'/(?<=^|;)\\s*(?:(?:([^;<\\s]*)\\s*<([^>]*)>)|([^;]*));/',
create_function('$m', 'global $dbclass; $dbclass->addemail($m[1] , $m[3] ? $m[3] : $m[2]);'),
$string
);