Initial import.
[siap.git] / _config / classes / Palavra.php
CommitLineData
696f20d5
MS
1<?\r
2class Palavra {\r
3 var $tabela;\r
4 \r
5 function Palavra($tmp_tabela = 'sis_palavra') {\r
6 $this->tabela = $tmp_tabela;\r
7 }\r
8 \r
9 function retornaInexistentes($todas){\r
10 $palavra = array();\r
11 if(is_array($todas))\r
12 $palavra = array_unique($todas);\r
13 \r
14 global $db;\r
15 $arr_existentes = array();\r
16 \r
17 if(is_array($todas))\r
18 $sql = "SELECT palavra FROM ".$this->tabela." WHERE palavra COLLATE latin1_bin in ('".implode("','", $palavra)."')";\r
19 else\r
20 $sql = "SELECT palavra FROM ".$this->tabela." WHERE palavra COLLATE latin1_bin = '".$todas."'";\r
21 \r
22 $rs = $db->execute($sql); \r
23 while(!$rs->EOF) {\r
24 $arr_existentes[] = $rs->fields("palavra");\r
25 $rs->moveNext();\r
26 }\r
27 \r
28 $arr_retorno = array();\r
29\r
30 if(is_array($todas)){\r
31 for($z=0;$z<sizeof($palavra);$z++){\r
32 if (isset($palavra[$z])) {\r
33 if((!(array_search($palavra[$z],$arr_existentes) > -1))&&($palavra[$z] != '')){\r
34 array_push($arr_retorno,$palavra[$z]);\r
35 }\r
36 }\r
37 }\r
38 }else{\r
39 if((!(array_search($todas,$arr_existentes) > -1))&&($todas != '')){\r
40 array_push($arr_retorno,$todas);\r
41 }\r
42 }\r
43 \r
44 return $arr_retorno;\r
45 }\r
46 \r
47 //private \r
48 function existePalavra($palavra) {\r
49 global $db;\r
50 $arr_existentes = array();\r
51 \r
52 if(is_array($palavra))\r
53 $sql = "SELECT distinct palavra FROM ".$this->tabela." WHERE palavra in ('".implode("','", $palavra)."')";\r
54 else\r
55 $sql = "SELECT distinct palavra FROM ".$this->tabela." WHERE palavra = '".$palavra."'";\r
56 $rs = $db->execute($sql);\r
57 \r
58 while(!$rs->EOF) {\r
59 $arr_existentes[] = $rs->fields("palavra");\r
60 $rs->moveNext();\r
61 }\r
62 \r
63 return $arr_existentes;\r
64 }\r
65 \r
66 //busca por um array de palavras no banco e retorna as que existem\r
67 //private \r
68 function existePalavras($arr_palavras) {\r
69 global $db;\r
70 \r
71 $sql = "SELECT distinct palavra FROM ".$this->tabela." WHERE palavra in ('".implode("','", $arr_palavras)."')";\r
72 $rs = $db->execute($sql);\r
73 \r
74 while(!$rs->EOF) {\r
75 $arr_existentes[] = $rs->fields("palavra");\r
76 $rs->moveNext();\r
77 }\r
78 \r
79 return $arr_existentes;\r
80 }\r
81 \r
82 //private \r
83 function salvaPalavras($palavras) {\r
84 global $db;\r
85 if(is_array($palavras)) {\r
86 if((sizeof($palavras) > 0)&&($palavras[0] != '')) {\r
87 $sql = "INSERT INTO ".$this->tabela." (palavra) VALUES('".implode("'),('",$palavras)."')";\r
88 $rs = $db->execute($sql);\r
89 }\r
90 }else{\r
91 if($palavras != ''){\r
92 $sql = "INSERT INTO ".$this->tabela." (palavra) VALUES('".$palavras."')";\r
93 $rs = $db->execute($sql);\r
94 }\r
95 }\r
96 }\r
97 \r
98 function retiraPontos($string, $troca = " "){\r
99 $string = strtolower($string);\r
100 $string = strip_tags($string);\r
101 $string = str_replace(",",$troca,$string);\r
102 $string = str_replace(".",$troca,$string);\r
103 $string = str_replace(":",$troca,$string);\r
104 $string = str_replace("?",$troca,$string);\r
105 $string = str_replace("!",$troca,$string);\r
106 $string = str_replace(";",$troca,$string);\r
107 $string = str_replace("<br>",$troca,$string);\r
108 $string = str_replace("<",$troca,$string);\r
109 $string = str_replace(">",$troca,$string);\r
110 $string = str_replace("[",$troca,$string);\r
111 $string = str_replace("]",$troca,$string);\r
112 $string = str_replace("{",$troca,$string);\r
113 $string = str_replace("}",$troca,$string);\r
114 $string = str_replace("(",$troca,$string);\r
115 $string = str_replace(")",$troca,$string);\r
116 $string = str_replace("/",$troca,$string);\r
117 $string = str_replace("|",$troca,$string);\r
118 $string = str_replace("\\",$troca,$string);\r
119 $string = str_replace("-",$troca,$string);\r
120 $string = str_replace("@",$troca,$string);\r
121 $string = str_replace("#",$troca,$string);\r
122 $string = str_replace("$",$troca,$string);\r
123 $string = str_replace("%",$troca,$string);\r
124 $string = str_replace("*",$troca,$string);\r
125 $string = str_replace("\"",$troca,$string);\r
126 $string = str_replace("'",$troca,$string);\r
127 $string = str_replace("&nbsp",$troca,$string);\r
128 $string = str_replace(chr(13),$troca,$string);\r
129 $string = str_replace(chr(10),$troca,$string);\r
130 \r
131 return $string;\r
132 }\r
133 \r
134 function filtraParaCadastro($arr_palavras) {\r
135 if(is_array($arr_palavras)){\r
136 $stringReplaced = array();\r
137 \r
138 //retira pontos espaços etc\r
139 $i=0;\r
140 while($i<sizeof($arr_palavras)) { \r
141 $stringReplaced[$i] = $this->retiraPontos(strtolower(strip_tags($arr_palavras[$i])));\r
142 $i++;\r
143 }\r
144 unset($arr_palavras);\r
145 $arr_palavras = array(); \r
146 //retirados os pontos, explode em um array maior com as novas palavras formadas truncadas por espaço\r
147 $i=0;\r
148 while($i<sizeof($stringReplaced)) { \r
149 $arr_palavras = array_merge($arr_palavras, explode(" ", $stringReplaced[$i]));\r
150 $i++;\r
151 }\r
152 unset($stringReplaced);\r
153 $stringReplaced = array();\r
154 //transformado em array, elimina os espaços excedentes e remove os itens de tamanho menor ou igual a dois\r
155 $i=0;\r
156 while($i<sizeof($arr_palavras)) {\r
157 $arr_palavras[$i] = trim($arr_palavras[$i]);\r
158 if(!(strlen($arr_palavras[$i]) <= 2))\r
159 $stringReplaced[] = $arr_palavras[$i];\r
160 $i++;\r
161 }\r
162 \r
163 return $stringReplaced;\r
164 }\r
165 }\r
166 \r
167 function cadastraPalavras($string,$quebra_string = true,$string_de_quebra = ' ') { \r
168 if($quebra_string) { //deve quebrar a string em palavras separadas \r
169 $arr_palavras = array();\r
170 if(is_array($string)){\r
171 $arr_palavras = $this->filtraParaCadastro($string);\r
172 }\r
173 else {\r
174 $arr_palavras = explode($string_de_quebra,$this->retiraPontos($string));\r
175 }\r
176 \r
177 $this->salvaPalavras($this->retornaInexistentes($arr_palavras));\r
178 }\r
179 else {\r
180 if(is_array($string)){\r
181 $palavras = array();\r
182 //retira as tags de cada uma das entradas e adiciona num novo array.\r
183 $i=0;\r
184 while($i<sizeof($string)){\r
185 $palavras[] = strtolower(strip_tags($string[$i]));\r
186 $i++;\r
187 }\r
188 $this->salvaPalavras($this->retornaInexistentes($palavras));\r
189 }else{\r
190 $string = strtolower(strip_tags($string));\r
191 $this->salvaPalavras($this->retornaInexistentes($string));\r
192 }\r
193 }\r
194 }\r
195}\r
196?>