1
|
<?
|
2
|
Header("Pragma: no-cache");
|
3
|
Header("Cache-Control: no-cache");
|
4
|
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");
|
5
|
?>
|
6
|
<html>
|
7
|
<head>
|
8
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
9
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
10
|
<title>Update tabulky dictrefer</title>
|
11
|
</head>
|
12
|
|
13
|
<body bgcolor="Silver">
|
14
|
<CENTER><H2>Update tabulky DICTREFER</H2></CENTER>
|
15
|
|
16
|
<?
|
17
|
|
18
|
function vrat_slovo()
|
19
|
{
|
20
|
|
21
|
static $ignoruj=Array("{","}","[","]","⌈","⌉"); //slova pro ignorovani
|
22
|
static $Zacatek="<";
|
23
|
static $Konec="#";
|
24
|
global $radek;
|
25
|
global $slovo;
|
26
|
static $i=0;
|
27
|
$pom1="";
|
28
|
$slovo="";
|
29
|
|
30
|
for($i;$i<=strlen($radek);$i++):
|
31
|
if (($radek[$i]==" ")||($i==strlen($radek)))
|
32
|
{
|
33
|
if (strlen($slovo)<(strlen($Zacatek))+(strlen($Konec)+1))
|
34
|
{
|
35
|
$slovo="";
|
36
|
continue;
|
37
|
}
|
38
|
|
39
|
for($p=0;$p<strlen($Zacatek);$p++)
|
40
|
{
|
41
|
if ($Zacatek[$p]!=$slovo[$p]) {$slovo="";break;}
|
42
|
}
|
43
|
|
44
|
if ($slovo=="") continue;
|
45
|
|
46
|
for($p=(strlen($slovo)-strlen($Konec)),$q=0;$p<strlen($slovo);$p++,$q++)
|
47
|
{
|
48
|
if ($Konec[$q]!=$slovo[$p]) {$slovo="";break;}
|
49
|
}
|
50
|
if ($slovo=="") continue;
|
51
|
|
52
|
$slovo=" ".$slovo;
|
53
|
for ($k=0;$k<Count($ignoruj);$k++):
|
54
|
$delka2=strlen($slovo);
|
55
|
$pomocny="";
|
56
|
|
57
|
if ($pos=StrPos($slovo,$ignoruj[$k]))
|
58
|
{
|
59
|
// echo " nalezeno na pozici: ".$pos;
|
60
|
$t=strlen($ignoruj[$k]);
|
61
|
if ($pos==0)
|
62
|
{
|
63
|
for ($t;$t<=$delka2;$t++) { $pomocny.=$slovo[$t];}
|
64
|
}
|
65
|
else
|
66
|
{
|
67
|
for ($s=0;$s<$pos;$s++) { $pomocny.=$slovo[$s];}
|
68
|
for ($pos+$t;$pos+$t<$delka2;$pos++) {$pomocny.=$slovo[$pos+$t];}
|
69
|
}
|
70
|
$slovo=$pomocny;
|
71
|
$k--;
|
72
|
}
|
73
|
// else echo " Nenalezeno";
|
74
|
endfor;
|
75
|
|
76
|
$i++;
|
77
|
|
78
|
return(1);
|
79
|
}
|
80
|
else $slovo.=$radek[$i];
|
81
|
|
82
|
endfor;
|
83
|
|
84
|
return(0);
|
85
|
|
86
|
}
|
87
|
|
88
|
static $slovo="";
|
89
|
static $radek="";
|
90
|
static $pocitadlo_novych_radku=0;
|
91
|
static $pocitadlo_update=0;
|
92
|
|
93
|
@$spojeni = Pg_Connect("user=dbowner dbname=klinopis");
|
94
|
if (!$spojeni):
|
95
|
echo "Nepodarilo se pripojit k PostgreSQL.<BR>\n";
|
96
|
die ("</body></html>");
|
97
|
endif;
|
98
|
|
99
|
@$vysledek1 = Pg_Exec($spojeni, "SELECT item,text1 FROM obdict WHERE zmena = 1 order by item");
|
100
|
if (!$vysledek1):
|
101
|
echo "Doslo k chybe pri zpracovani dotazu v tabulce OBDICT.<BR>\n";
|
102
|
die ("</body></html>");
|
103
|
endif;
|
104
|
echo "<b>V tabulce OBDICT je nastavena ZMENA pro <FONT color=\"Green\">".Pg_NumRows($vysledek1)." </FONT>radek/radku.</b> <BR>\n";
|
105
|
|
106
|
if (Pg_NumRows($vysledek1)==0):
|
107
|
echo "<b>Neni treba updatovat zadne tabulky.<BR>\n</b>";
|
108
|
die ("</body></html>");
|
109
|
endif;
|
110
|
|
111
|
for ($m=0; $m < Pg_NumRows($vysledek1); $m++):
|
112
|
$zaznam1 = Pg_Fetch_Array($vysledek1, $m);
|
113
|
if ($m%500==0) echo "\n<BR>Zpracovano radku: ".$m;
|
114
|
$radek = $zaznam1["text1"];
|
115
|
// echo "<br><b><FONT FACE=\"Arial Unicode MS\">Zpracovavam radek: </b>".$radek."<BR>";
|
116
|
$pom_item=$zaznam1["item"];
|
117
|
|
118
|
while(vrat_slovo()):
|
119
|
@$vysledek2 = Pg_Exec($spojeni, "SELECT item1,refer1 FROM dictrefer WHERE refer1 = '$slovo' AND AND item1='$pom_item' ");
|
120
|
echo "<br>Hledam refer1=".$slovo." a taky item1=".$zaznam1["item"];
|
121
|
// echo "<BR>Nalezeno v poctu :".Pg_NumRows($vysledek2);
|
122
|
if (!$vysledek2)
|
123
|
{
|
124
|
$vysledek4 = Pg_Exec($spojeni,"INSERT INTO dictrefer(item1,refer1) VALUES ('$pom_item','$slovo')" );
|
125
|
die ("</body></html>");
|
126
|
|
127
|
}
|
128
|
elseif (Pg_NumRows($vysledek2)==0)
|
129
|
{
|
130
|
//slovicko nenalezeno v OBDICT
|
131
|
$item1_pom=$zaznam1["item"];
|
132
|
$vysledek3 = Pg_Exec($spojeni,"INSERT INTO dictrefer(item1,refer1) VALUES ('$item1_pom','$slovo')" );
|
133
|
if (!$vysledek3)
|
134
|
{
|
135
|
echo "Doslo k chybe pri insertu slovicka do tabulky DICTREFER.<BR>\n";
|
136
|
echo "<FONT FACE=\"Arial Unicode MS\">\nINSERT INTO dictrefer(item1,refer1) VALUES ('".$zaznam1["item"]."',' ".$slovo."')\n<HR></FONT>";
|
137
|
die ("</body></html>");
|
138
|
}
|
139
|
else {
|
140
|
echo "\n<HR><BR><FONT color=\"green\"><b>Nova radka v tabulce DICTREFER ulozena!!! </b></font><br>";
|
141
|
echo "<FONT FACE=\"Arial Unicode MS\">\nINSERT INTO dictrefer(item1,refer1) VALUES ('".$zaznam1["item"]."',' ".$slovo."')\n<HR></FONT>";
|
142
|
$pocitadlo_novych_radku++;
|
143
|
}
|
144
|
}
|
145
|
else { //slovicko nalezeno
|
146
|
echo "\n<HR><BR><FONT color=\"red\"><b>Zaznam jiz nalezen!!</b></font><BR> ";
|
147
|
echo "refer1 = '".$slovo."' & item1 = '".$zaznam1["item"]."'";
|
148
|
echo "\n<HR>";
|
149
|
continue;
|
150
|
}
|
151
|
endwhile;
|
152
|
|
153
|
$item_pom=$zaznam1["item"];
|
154
|
$text1_pom=$zaznam1["text1"];
|
155
|
@$vysledek4 = Pg_Exec($spojeni,"UPDATE obdict SET zmena = '0' WHERE ((item='$item_pom') AND (text1='$text1_pom'))");
|
156
|
if (!$vysledek4)
|
157
|
{
|
158
|
echo "Doslo k chybe pri updatu polozky zmena v tabulce OBDICT.<BR>\n";
|
159
|
die ("</body></html>");
|
160
|
}
|
161
|
else
|
162
|
{
|
163
|
$pocitadlo_update+=1;
|
164
|
// echo "<HR><B> <FONT color=\"green\"> Zmena 1 -> 0 - uspesne ulozeno!!!</b></font>";
|
165
|
}
|
166
|
endfor;
|
167
|
echo "\n<BR><HR><b>Zpracovano <FONT color=\"green\">".$pocitadlo_update."</font> radek/radku.</b></FONT>";
|
168
|
echo "\n<BR><b>Do tabulky DICTREFER bylo ulozeno <FONT color=\"green\">".$pocitadlo_novych_radku."</font> novych radek/radku.</b></FONT>";
|
169
|
?>
|
170
|
</body>
|
171
|
</html>
|