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
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
str_replace() måske, jeg ved bare ikke hvad du helt vil... :S
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.
$melodi = "Vi er et yndigt land"; eregi_replace("vi","", $melodi); echo $melodi; output: er et yndigt land
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?
<? $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 ;)
Sikke dog... Jeg chekker det lige ud. :) Smid et svar i mellemtiden.
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.
det fikser jeg lige for dig ;)
<? $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
Nu returnerer den " er land". Er det noget, der kan ordnes? Undskyld. :(
hmm... gør den ikke her :s
Hmm, mystisk. Jeg har garanteret gjort et eller andet forkert. Øjeblik.
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.
ah oki.. well.. Så blev jeg også klogere ;)
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.
htm -> Du skriver at v og l, skal være forbudte tegn, men den returnerer "har et yndigt land"?
Forresten, tak for hjælpen til dig også. >:)
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; ?>
Så virker det. Takker. Kom du også med et svar. Jeg synes, at en 50% / 50% lyder meget rimeligt.
Giv du bare min del af pointne til tfswebguy, jeg samler ikke på point.
jamen jeg takker da så meget, selvom jeg ville mene jeg ikke skulle have de point :)
Vi tilbyder markedets bedste kurser inden for webudvikling