hoofdletter gevoeligheid substr en str_replace

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Albert de Wit

Albert de Wit

15/06/2012 12:00:15
Quote Anchor link
Hallo,

Ik heb een soort zoekfunctie gemaakt die door alle projecten van de database zoekt.
Hij is alleen hoofdlettergevoelig. Is er een manier om hoofdlettergevoeligheid uit te zetten met de functies substr en str_replace?
 
PHP hulp

PHP hulp

19/04/2024 15:20:18
 
- Mark -

- Mark -

15/06/2012 12:03:41
Quote Anchor link
Kijk eens wat er staat bij notes op

http://php.net/manual/en/function.str-replace.php

en substr is niet hoofdletter gevoelig dus die vraag snap ik even niet.
 
TJVB tvb

TJVB tvb

15/06/2012 12:05:12
Quote Anchor link
str_replace -> str_ireplace

met substr haal je een deel uit een string, dat is niet hoofdletter gevoelig maar het resultaat kun je met bijvoorbeeld strtolower wel wijzinge
Gewijzigd op 15/06/2012 12:06:41 door TJVB tvb
 
Terence Hersbach

Terence Hersbach

15/06/2012 12:06:50
Quote Anchor link
Geef eens de query die je hier voor gebruikt? Kan makkelijker denk ik.
 
Albert de Wit

Albert de Wit

15/06/2012 12:08:28
Quote Anchor link
substr is wel degelijk hoofdletter gevoelig.

str_replace heb ik vervangen door str_ireplace. Het enige probleem ligt nog bij de hoofdlettergevoeligheid van substr
 
TJVB tvb

TJVB tvb

15/06/2012 12:11:05
Quote Anchor link
Laat dan eens je code zien, met substr haal je een deel uit een string. Dan krijg je gewoon dat deel terug. De getallen om te bepalen welk deel hebben geen hoofdletter, dus ik snap je niet echt.
 
Albert de Wit

Albert de Wit

15/06/2012 12:11:23
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if (isset($_POST['zoek'])&&$_POST['zoekterm']!='')
      {

        if (strlen(strstr($row['Titel'],$_POST['zoekterm']))>0||strlen(strstr($row['Omschrijving'],$_POST['zoekterm']))>0||strlen(strstr($row['Naam'],$_POST['zoekterm']))>0)
        {

          $this->code .= "<tr class='zoekresultaten'>
                              <td class='active'>"
.$row['idProject']."</td>
                              <td class='projecten_titel'><a class='zoekresultaten_link' href='index.php?project="
.$row['idProject']."&samenvatting'>".str_ireplace($_POST['zoekterm'],'<b>'.$_POST['zoekterm'].'</b>',$row['Titel'])."</a></td>
                              <td class='projecten_omschrijving' title='"
.str_replace($_POST['zoekterm'],'['.$_POST['zoekterm'].']',$row['Omschrijving'])."'>".substr(str_ireplace($_POST['zoekterm'],'<b>'.$_POST['zoekterm'].'</b>',$row['Omschrijving']),'0','49')."...</td>
                              <td class='projecten_klant'><a class='zoekresultaten_link' href='index.php?klant="
.$row['idKlant']."&gegevens'>".str_ireplace($_POST['zoekterm'],'<b>'.$_POST['zoekterm'].'</b>',$row['Naam'])."</td>
?>
 
- Mark -

- Mark -

15/06/2012 12:13:04
Quote Anchor link
Het word dus tijd voor koffie of voor een brilletje :p

Zie See Also op

http://nl3.php.net/strstr
 
Albert de Wit

Albert de Wit

15/06/2012 12:13:53
Quote Anchor link
ik krijg nu alle resultaten ook al worden er hoofdletters gebruik, alleen worden ze wel vervangen door het zoekwoord dus:

Zoekterm=project

Titel=Project

Zoekresultaat=project
 
TJVB tvb

TJVB tvb

15/06/2012 12:14:12
Quote Anchor link
strstr is wel hoofdletter gevoelig, maar daarvoor is er stristr is in jouw voorbeel stripos niet handiger?

if(stripos($row['Titel',$_POST['zoekterm']) !== FALSE ....
 
Albert de Wit

Albert de Wit

15/06/2012 12:16:14
Quote Anchor link
waarom die if statement aanpassen? Die geeft true aan als er een zoekterm is ingevoerd
 
- Mark -

- Mark -

15/06/2012 12:27:21
Quote Anchor link
Het stukje dat TJVB plaatste is ter vervanging van

strlen(strstr($row['Titel'],$_POST['zoekterm']))>0

Je kunt het voor de andere op dezelfde manier oplossen.

Er staat gewoon.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

    if(stripos($row['Titel',$_POST['zoekterm']) !== FALSE){

        // Zoekterm gevonden in de titel.
    }
    else{

        // Zoekterm niet gevonden in de titel.
    }

?>
 
TJVB tvb

TJVB tvb

15/06/2012 12:42:37
Quote Anchor link
@Albert, jij gebruikt 2 functies die het trager maken dan die ene functie (En die !== False moet omdat het ook position 0 kan zijn die bij != gezien wordt als vals)
 
Albert de Wit

Albert de Wit

15/06/2012 13:54:49
Quote Anchor link
ok, ik heb het aangepast

alles werkt nu goed :D bedankt allemaal!
 



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.