рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдПрдХ рднреЛрдЬ рдХрд╛рд░реНрдп рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ - рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкреВрд░реНрдг рдирд╛рдо рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рджреНрд░рд╡реНрдпрдорд╛рди рд╣реИред рдЕрдХреНрд╕рд░ рдХрд╛рдлреА рдЕрдирдкрдврд╝ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреВрджрд┐рддред рдпрд╣ GOST 7.79 (рдЖрдИрдПрд╕рдУ 9) рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдореНрдорд╛рдирд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдХрд╛рд░реНрдп - рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб (рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдкреВрд░рд╛ рдирд╛рдо) рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдЦрд░рд╛рдм рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ред рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд░реВрд╕реА рдЦреЛрдЬ рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ (MySQL) рд╕реЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ,
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдореЗрдВ
рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реИред
рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдореВрд▓ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд░реНрддрдиреА рд╣реЛрдЧреАред
рд╕реНрд░реЛрдд 1, рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХреЗрд▓реЗрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИprint_r (r2e (" ")); function r2e ($txt) { $r=array(mb_strtolower($txt,"windows-1251")); $r=r2es($r,"//i",array("x","ks","cs")); $r=r2es($r,"//i",array("ey","ei")); $r=r2es($r,"//i",array("ov","off")); $r=r2es($r,"//i",array("a")); $r=r2es($r,"//i",array("b")); $r=r2es($r,"//i",array("v","w")); $r=r2es($r,"//i",array("g")); $r=r2es($r,"//i",array("d")); $r=r2es($r,"//i",array("e")); $r=r2es($r,"//i",array("yo","jo")); $r=r2es($r,"//i",array("zh","z")); $r=r2es($r,"//i",array("z","s")); $r=r2es($r,"//i",array("i")); $r=r2es($r,"//i",array("j","y")); $r=r2es($r,"//i",array("k","c")); $r=r2es($r,"//i",array("l")); $r=r2es($r,"//i",array("m")); $r=r2es($r,"//i",array("n")); $r=r2es($r,"//i",array("o")); $r=r2es($r,"//i",array("p")); $r=r2es($r,"//i",array("r")); $r=r2es($r,"//i",array("s")); $r=r2es($r,"//i",array("t")); $r=r2es($r,"//i",array("u")); $r=r2es($r,"//i",array("f")); $r=r2es($r,"//i",array("h","kh")); $r=r2es($r,"//i",array("c","ts")); $r=r2es($r,"//i",array("ch")); $r=r2es($r,"//i",array("sh")); $r=r2es($r,"//i",array("shch","sch","sh")); $r=r2es($r,"//i",array("")); $r=r2es($r,"//i",array("y")); $r=r2es($r,"//i",array("")); $r=r2es($r,"//i",array("e")); $r=r2es($r,"//i",array("u","yu","ju")); $r=r2es($r,"//i",array("ya","ja")); return $r; } function r2es ($var, $pattern, $splits) { $sp=array(); $nsp=array(); foreach ($var as $v) if (preg_match($pattern,$v)) foreach ($splits as $split) $sp=array_merge($sp,array(preg_replace($pattern,$split,$v))); else $nsp=array_merge($nsp,array($v)); return array_merge($sp,$nsp); }
рдЙрджрд╛рд╣рд░рдг 1 рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реАрд╕рд░рдгреА
(
[реж] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯреНрд░рд┐рдпрд╛ рдлреНрд░реЗрдЬрд╝рд╛ рдирд╛ рд░реБрд╕реНрдХреЛрдо рдпрдЬрд╝реАрдХреЗ
[рез] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯрдЬрд╛ рдлреНрд░реЗрдЬрд╝рд╛ рдирд╛ рд░реБрд╕реНрдХреЛрдо рдЬрд╛рдЬрдХреЗ
[реи] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯреНрд░рд┐рдпрд╛ рдлреНрд░реЗрдЬрд╝рд╛ рдирд╛ рд░рд╕реНрдХреЙрдо рдпрдЬрд╝реАрдЬрд╝
[рей] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯрдЬрд╛ рдлреНрд░реЗрдЬрд╝рд╛ рдирд╛ рд░рд╕реНрдХреЛрдо рдЬрд╛рдЬреЗрд╕
[рек] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯрд╛рдп рдлреНрд░реИрд╕рд╛ рди рд░рд╕реНрдХреЙрдо рдпрд╛рд╕реАрдХреЗ
[рел] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯрдЬрд╛ рдлреНрд░реИрд╕рд╛ рдирд╛ рд░реБрд╕реНрдХреЛрдо рдЬрд╕реАрдХреЗ
[рем] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯреЗрдпрд╛ рдлреНрд░реИрд╕рд╛ рди рд░реБрд╕рдХреЙрдо рдпрд╛рд╕реА
[[] => рдУрдЪреЗрди рдкреНрд░реЛрд╕реНрдЯрдЬрд╛ рдлреНрд░реИрд╕рд╛ рди рд░реБрд╕рдХреЙрдо рдЬрд╕реАрд╕
)
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгреА рдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЙрдкрд╛рдВрдЧ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЪрд┐рдкрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
$sqlstr = "SELECT <smth> FROM <smwhr> WHERE searchField LIKE '%" . implode("%' OR searchField LIKE '%",$result) . "%'"; , $sqlstr = "SELECT <smth> FROM <smwhr> WHERE searchField LIKE '" . implode("' OR searchField LIKE '",$result) . "'";
рдЦреИрд░, рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЪрд┐рдВрддрд╛рдЬрдирдХ рд╣реИ рдХрд┐ SQL рдХреНрд╡реЗрд░реА рдХреЛ рдХрдИ рдмрд╛рд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдиреНрдпреВрдирддрдо рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ - MySQL рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, "SELECT ... рд╡реНрд╣реЗрдпрд░ рдлреАрд▓реНрдб рд▓рд╛рдЗрдХ 'рдкреИрдЯрд░реНрди' рдХреЗ рдмрдЬрд╛рдп, рдПрдбрд╡рд╛рдВрд╕реНрдб рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди" SELECT ... рд╡реНрд╣реЗрдпрд░ рдлреАрд▓реНрдб рд░реЗрдЬреЗрдХреНрд╕рдк 'рд░реЗрдЧреЗрдХреНрд╕рдк', рдЬреЛ рд░реЗрдЧреЗрдХреНрд╕рдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реИред
MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреБрд▓ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХреЙрдореНрдкреИрдХреНрдЯ рдХреЛрдб
рдЗрддрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ function r2e ($txt) { $txt=mb_strtolower($txt,"windows-1251"); $sr=array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""); $se=array("(x|[kc]s)","e[yi]","o(v|ff)","a","b","[vw]","g","d","e","[yj]o","z(h)*","[zs]","i","[jy]","[kc]","l","m","n","o","p","r","s","t","u","f","(k|c)*h","(c|ts)","ch","sh","s(h)*(c)*h","","y","","e","[yj]*u","[yj]a"); return str_replace($sr,$se,$txt); }
рдкрд░рд┐рдгрд╛рдо рдлреЙрд░реНрдо рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ
ochen prosta[yj]a fra[zs]a na russ[kc]om [yj]a[zs]y[kc]e
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП REGEXP '$ txt' рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, $ txtред
рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп DBMS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
- рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, MSSQL рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд░рд╕рджрд╛рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рд╕реАрдПрд▓рдЖрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ рд╕реЗ ) рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
- рдЯреА-рдПрд╕рдХреНрдпреВрдПрд▓ (рдУрд░реЗрдХрд▓) рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо 10 рдЬреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде REGEXP_LIKE (fieldName, regexpString) рд╣реИред
- PostgreSQL рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ regexp_matches (fieldName, regexpString) рд╣реИред
- рдЖрдк рдлрд╛рдпрд░рдмрд░реНрдб рдореЗрдВ SIMILAR TO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рд╛рдирджрд╛рд░ рд░реВрд╕реА "" рдХреЗ рдмрдЬрд╛рдп s (h) * (h) * h, рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ s (h) {0,1} {0,1} рдПрдЪ рдФрд░ рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдЖрдЧреЗред