Gå til innhold

søke gjennom en gitt tekst [LØST]


Anbefalte innlegg

Hvordan kan en på lettest måte søke igjennom en gitt tekst for å se etter enkelte forekomster av ord ved å bruke php?

 

jeg holder på å forebedre en gjestebok jeg har laget i php og der skal jeg søke igjennom kommentarene folk legger igjen blandt annet etter uønskede ord. må jeg da legge inn kommentarene inn i arrays og ta ord for ord sånn sett?

Endret av ilpostino
Lenke til kommentar
Videoannonse
Annonse

PHP
<?php

$sensur = array ( 'Foo''Bar''Baz' );

$tekst "Foo gikk sammen med Bar hele veien til Baz";

 

$tekst str_ireplace $sensur"*"$tekst );

 

echo $tekst;

?>

Kan også lage ett array på hva som skal erstatte det ordet som fjernes.

PHP
<?php

$sensur = array ( 'Foo''Bar''Baz' );

$erstatt = array ( '1''2''3' );

$tekst "Foo gikk sammen med Bar hele veien til Baz";

 

$tekst str_ireplace $sensur$erstatt$tekst );

 

echo $tekst;

?>

Merk at det brukes str_ireplace(), som betyr at den er case-insensitiv.

 

Kan også løses med regex, men kan man bruke str_(i)replace() så er vel det best?

Lenke til kommentar

jeg skal ikke fjerne noen ord. jeg skal bare sjekke om et/flere ord finnes i en tekststring. her er slik jeg har prøvd foreløbig uten hell:

 

$banned_word = array('viagra', 'sex');
foreach ($banned_word as $banned) {
    if (eregi($banned, $comment)) { 
        //Tekst som avslutter scriptet kommer her
    }
}

Lenke til kommentar

Ståle, ereg() anbefales ikke å brukes da den er gammel og det da finnes nyere funksjoner som kjører raskere. Bruk heller preg_match() fremfor ereg.

Merk deg at hvis du skal søke etter en liten bit tekst i ett ord eller lignende bør du bruke strstr() eller strpos() :)

 

Håper det hjalp litt :)

Lenke til kommentar

begynte å få dreisen på str_ireplace men jeg fikk det til med en gang med preg_match. testkoden jeg fikk det til med ble slik:

 

//Denne koden sjekker om uønskede ord er skrevet inn og stopper hvis det er tilfelle.
$banned_word = array("/viagra/", "/sex/","/href/");
$comment = "jeg hadde sex med href igår";

foreach ($banned_word as $banned) {
    if(preg_match ($banned, $comment)) exit ("forbidden");
}

 

takk til begge for hjelp

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...