Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 11:47 Der er 24 kommentarer og
1 løsning

Søger en PHP-kode

Goddag

Jeg søger en PHP-kode (kalder man det en "sting"?), som sletter alle ord i en variabel, der indeholder f.eks. "v" og "?".

Så …
$melodi = ”Er vi et yndigt land?”;

… skal laves om til
$melodi = ”Er et yndigt”;

På forhånd tak
Avatar billede zynzz Praktikant
01. maj 2006 - 11:57 #1
str_replace() måske, jeg ved bare ikke hvad du helt vil... :S
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 12:04 #2
Det er der som regelt ingen, der ved..

Hvis vi nu siger at $eksperten = "lang sætning". Så vil jeg gerne vise $eksperten med "echo $eksperten". Men inden vil jeg gerne lige slette alle ordene, som indeholder A af en eller anden uforklarlig årsag.
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 12:10 #3
$melodi = "Vi er et yndigt land";
eregi_replace("vi","", $melodi);
echo $melodi;

output: er et yndigt land
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 12:18 #4
Jeg takker for jeres hjælp.

Men det må da, kunne lade sig gøre at erstate samtlige ord med v med ingenting, uden at skulle skrive samtlige ord med v?
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 12:19 #5
arbejder lige på det...
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 12:26 #6
<?
$melodi = "Vi er et yndigt land";

$tekster = explode(" ", $melodi);

for($i=0; $i<COUNT($tekster); $i++){
  if(!eregi("v", $tekster[$i])){
    $tekst .= $tekster[$i];
    $tekst .= " ";
}
}
echo $tekst;
?>

output: er et yndigt land

Lige for at få dig ind på det rigtige ;)
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 12:29 #7
Sikke dog... Jeg chekker det lige ud. :)

Smid et svar i mellemtiden.
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 12:30 #8
Jamen det gør jeg da så
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 12:39 #9
Lige 2 ting (hvis det ikke er til for megen ulejlighed).

- Hvad hvis man vil checke det for et enkelt bogstav mere?

- Hvis "er et yndigt land, vi" bliver rettet for V, kommer der et mellemrum til sidst, som jeg gerne vil have slettet.

Men mange tak for hjælpen.
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 12:40 #10
det fikser jeg lige for dig ;)
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 12:43 #11
:)
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 12:47 #12
<?
$melodi = "Vi er et yndigt land";

$tekster = explode(" ", $melodi);

for($i=0; $i<COUNT($tekster); $i++){
  if($i > "0"){
    $tekst .= " ";
  }
  if(!eregi("v", $tekster[$i]) && !eregi("t", $tekster[$i])){
    $tekst .= $tekster[$i];
  }
}
echo $tekst;
?>

Skulle virke, og skrive: er land
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 12:53 #13
Nu returnerer den " er  land".

Er det noget, der kan ordnes? Undskyld. :(
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 12:54 #14
hmm... gør den ikke her :s
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 12:57 #15
Hmm, mystisk. Jeg har garanteret gjort et eller andet forkert. Øjeblik.
Avatar billede htm Nybegynder
01. maj 2006 - 13:00 #16
En nem måde at gøre det på, hvor du selv kan definere alle dine forbudte tegn øverst:

Og så bruger den ikke eregi som kan være lidt langsommere.

<?php
$str = "Vi har et yndigt land";
$forbudteTegn = "vl";

$tekster = explode(" ",$str);
for($i=0;$i<count($tekster);$i++)
{
    for($j=0;$j<strlen($forbudteTegn);$j++)
    {
        if(stristr($tekster[$i],$forbudteTegn[$j]))
        {
            unset($tekster[$i]);
            break;
        }
    }
}
$str = implode($tekster, " ");
echo $str;
?>

tfswebguy>> prøv og sig vis kilde for dit eks. der er mellemrumne med.
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 13:04 #17
ah oki.. well.. Så blev jeg også klogere ;)
Avatar billede htm Nybegynder
01. maj 2006 - 13:05 #18
Super ;-) det er dejligt når man bliver klogere.

HTML viser kun ét mellemrum, med mindre du har sat <pre> tags omkring. Men i kildekoden vil det altid være korrekt.
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 13:07 #19
htm -> Du skriver at v og l, skal være forbudte tegn, men den returnerer "har et yndigt land"?
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 13:08 #20
Forresten, tak for hjælpen til dig også. >:)
Avatar billede htm Nybegynder
01. maj 2006 - 13:12 #21
Ups... - en lille svipser...

Jeg gør $tekster kortere og dermed bliver count($tekster) også en mindre hver gang der er et ord der mather. Og når den skal evaluere hver gang går det galt...

Rettet:

<?php
$str = "Vi har et yndigt land";
$forbudteTegn = "vl";

$tekster = explode(" ",$str);
$antal = count($tekster);
for($i=0;$i<$antal;$i++)
{
    for($j=0;$j<strlen($forbudteTegn);$j++)
    {
        if(stristr($tekster[$i],$forbudteTegn[$j]))
        {
            unset($tekster[$i]);
            break;
        }
    }
}
$str = implode($tekster, " ");
echo $str;
?>
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 13:15 #22
Så virker det. Takker. Kom du også med et svar.

Jeg synes, at en 50% / 50% lyder meget rimeligt.
Avatar billede htm Nybegynder
01. maj 2006 - 13:16 #23
Giv du bare min del af pointne til tfswebguy, jeg samler ikke på point.
Avatar billede webmaster-patrick Nybegynder
01. maj 2006 - 13:17 #24
Sådan. :)
Avatar billede tfswebguy Nybegynder
01. maj 2006 - 13:56 #25
jamen jeg takker da så meget, selvom jeg ville mene jeg ikke skulle have de point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester