zoeken en speciale characters

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mike de Wit

Mike de Wit

03/12/2010 20:38:08
Quote Anchor link
Hallo allemaal,

ik ben op zoek naar een manier om een tekst te doorzoeken met speciale characters.
bv. de zoekterm 'heel groot' moet niet alleen 'heel groot' geven, maar ook 'héél groot', 'heel gróót' en alle variaties daarop. (zoals Google het doet)

Moet ik zelf een workaround bouwen, bijvoorbeeld door alle speciale characters in zowel de zoekterm als de tekst tijdelijk te vervangen door 'normale' (bv áàâä => a) of is er een php-functie voor die ik nog nooit heb gevonden? :-)

alvast bedankt
 
PHP hulp

PHP hulp

22/11/2024 00:04:33
 
Cimah Potte

Cimah Potte

03/12/2010 20:42:04
Quote Anchor link
Je kunt het inderdaad met str_replace doen (zie: http://www.php.net/manual/en/function.str-replace.php)
Maar ook met htmlspecialchars (zie: http://php.net/manual/en/function.htmlspecialchars.php)
 
Mike de Wit

Mike de Wit

03/12/2010 21:02:28
Quote Anchor link
De str_replace kan ik nog begrijpen, hoewel ik dan liever een preg_replace met regex gebruik, maar de htmpspecialchars zie ik niet. Dat vertaalt special chars wel, maar helpt me volgens mij niet bij het vinden van á, ä, à en â als ik op 'a' zoek. Of mis ik iets? :-)
 
Henk Tenk

Henk Tenk

03/12/2010 21:04:06
Quote Anchor link
misschien:
$string = str_replace("á","a",$string);
$string = str_replace("à","a",$string);
enz...?
 
Mike de Wit

Mike de Wit

03/12/2010 21:06:25
Quote Anchor link
Henk, die workaround had ik ook bedacht. Ik had alleen gehoopt dat er een andere (makkelijker, sneller) manier zou zijn. Een functie die het accent vergeet en alleen kijkt naar de letter of zo. Misschien moeten ze 'm maar eens uitvinden :-)

Toevoeging op 04/12/2010 19:24:51:

Het is niet fraai geworden, maar het werkt wel: alle diakritische tekens worden omgezet naar hun 'normale' evenknie. Voor wie het kan gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
function sp_replace($a){
$tg[1]="\x{00E0}|\x{00E1}|\x{00E2}|\x{00E3}|\x{00E4}|\x{00E5}|\x{0101}|\x{0103}|\x{0105}";
$tg[2]="\x{00E7}|\x{0107}|\x{0109}|\x{010B}|\x{010D}";
$tg[3]="\x{010F}|\x{0111}";
$tg[4]="\x{00E8}|\x{00E9}|\x{00EA}|\x{00EB}|\x{0113}|\x{0115}|\x{0117}|\x{0119}|\x{011B}";
$tg[5]="\x{011D}|\x{011F}|\x{0121}|\x{0123}";
$tg[6]="\x{0125}|\x{0127}";
$tg[7]="\x{00EC}|\x{00ED}|\x{00EE}|\x{00EF}|\x{0129}|\x{012B}|\x{012D}|\x{0131}";
$tg[8]="\x{012F}|\x{0135}";
$tg[9]="\x{0137}|\x{0138}";
$tg[10]="\x{013A}|\x{013C}|\x{013E}|\x{0140}|\x{0142}";
$tg[11]="\x{00F1}|\x{0144}|\x{0146}|\x{0148}|\x{014B}";
$tg[12]="\x{00F2}|\x{00F3}|\x{00F4}|\x{00F6}|\x{00F5}|\x{00F8}|\x{014D}|\x{014F}|\x{0151}";
$tg[13]="\x{0155}|\x{0157}|\x{0159}";
$tg[14]="\x{015B}|\x{015D}|\x{015F}|\x{0161}";
$tg[15]="\x{0163}|\x{0165}|\x{0167}";
$tg[16]="\x{00F9}|\x{00FA}|\x{00FB}|\x{00FC}|\x{0169}|\x{016F}|\x{016B}|\x{016D}|\x{0171}|\x{0173}";
$tg[17]="\x{00FD}|\x{00FF}|\x{0177}";
$tg[18]="\x{017A}|\x{017C}|\x{017E}";
$tg[19]="\x{00E6}";
$tg[20]="\x{0153}";
$tg[21]="\x{0133}";
$tg[22]="\x{00DF}";
$tg[23]="\x{00C0}|\x{00C1}|\x{00C2}|\x{00C3}|\x{00C4}|\x{00C5}|\x{0100}|\x{0102}|\x{0104}";
$tg[24]="\x{00C7}|\x{0106}|\x{0108}|\x{010A}|\x{010C}";
$tg[25]="\x{010E}|\x{0110}";
$tg[26]="\x{00C8}|\x{00C9}|\x{00CA}|\x{00CB}|\x{0112}|\x{0114}|\x{0116}|\x{0118}|\x{011A}";
$tg[27]="\x{011C}|\x{011E}|\x{0120}|\x{0122}";
$tg[28]="\x{0124}|\x{0126}|\x{00CC}|\x{00CD}|\x{00CE}|\x{00CF}|\x{0128}|\x{012A}|\x{012C}";
$tg[29]="\x{012E}|\x{0134}";
$tg[30]="\x{0136}";
$tg[31]="\x{0139}|\x{013B}|\x{013D}|\x{013F}|\x{0141}";
$tg[32]="\x{00D1}|\x{0143}|\x{0145}|\x{0147}|\x{014A}";
$tg[33]="\x{00D5}|\x{00D8}|\x{014C}|\x{014E}|\x{0150}";
$tg[34]="\x{0154}|\x{0156}|\x{0158}";
$tg[35]="\x{015A}|\x{015C}|\x{015E}|\x{0160}";
$tg[36]="\x{0162}|\x{0164}|\x{0166}";
$tg[37]="\x{00D9}|\x{00DA}|\x{00DB}|\x{00DC}|\x{0168}|\x{016E}|\x{016A}|\x{016C}|\x{0170}|\x{0172}";
$tg[38]="\x{0174}|\x{00DD}|\x{0178}|\x{0176}";
$tg[39]="\x{0179}|\x{017B}|\x{017D}";
$tg[40]="\x{00C6}";
$tg[41]="\x{0152}";
$tg[42]="\x{0132}";

$th[1]="a";$th[2]='c';$th[3]='d';$th[4]='e';$th[5]='g';$th[6]='h';$th[7]='i';$th[8]='j';$th[9]='k';$th[10]='l';$th[11]='n';
$th[12]='o';$th[13]='r';$th[14]='s';$th[15]='t';$th[16]='u';$th[17]='w';$th[18]='z';$th[19]='ae';$th[20]='oe';$th[21]='ij';
$th[22]='ss';$th[23]='A';$th[24]='C';$th[25]='D';$th[26]='E';$th[27]='G';$th[28]='H';$th[29]='J';$th[30]='K';$th[31]='L';
$th[32]='N';$th[33]='O';$th[34]='R';$th[35]='S';$th[36]='T';$th[37]='U';$th[38]='W';$th[39]='Z';$th[40]='AE';$th[41]='OE';
$th[42]='IJ';
for($i=1;$i<43;$i++){$a=preg_replace("/".$tg[$i]."/u",$th[$i],$a);}return $a;}
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.