Avatar billede h_h Nybegynder
17. januar 2011 - 18:19 Der er 4 kommentarer

ereg'ing i php

Kære eksperter,

Jeg sidder og arbejder med strenge i PHP. Jeg vil høre om man i PHP kan ereg'e (eller noget lignende) så en del af et ord bliver genkendt på en bestemt kombination af bogstaver i det (i eksemplet "-FARVE-") og det der kommer før og efter denne tegnkombination bruges som argumenter i en funktion, der erstatter ordet med en streng, hvor disse argumenter anvendes.

Eksemplet kunne være:

"Jeg har købt en is-FARVE-7722BB ikke en bil-FARVE-993300 vel?"

...som bliver til:

"Jeg har købt en <b><script (...) '7722BB'>is</script></b> ikke en <b><script (...) '993300'>bil</script></b> vel?"

Håber virkeligt at nogen kan hjælpe!
Avatar billede mons Nybegynder
20. januar 2011 - 18:13 #1
Vi skal lige vide, om der før og efter FARVE altid er - (bindestreg)?
Så kan du hive ordet (is-FARVE-7722BB) ud og så explode med '-' som argument, så er $array[0]='is' $array[1]='FARVE' osv.

Så må vi komme til scriptet senere.
Lige nu kan jeg sige du skal have fat på echo"";
og det giver ikke mening at bruge <b></b> det er jo html og betyder fed.
Avatar billede h_h Nybegynder
24. januar 2011 - 13:21 #2
Ja, tanken er, at de ord der skal genkendes altid indeholder -FARVE- (med bindestreger) til genkendelse. Koden efter -FARVE- skal så bruges til et html-tag. Ordet før -FARVE- skal wrappes med dette tag. Alternativt kunne man også køre en pseudo-tag syntax:

"Jeg har købt en [FARVE 7722BB]is[/FARVE] ikke en [FARVE 993300]bil[/FARVE] vel?"

...som bliver til:

"Jeg har købt en <b><script (...) '7722BB'>is</script></b> ikke en <b><script (...) '993300'>bil</script></b> vel?"

<b>-tagget var bare et eksempel på et ekstratag, man kunne smide på.

Håber du (I) forstår - ellers bare skriv igen... :)
Avatar billede mons Nybegynder
24. januar 2011 - 18:32 #3
Nu har jeg lavet en kode som behandler trækker ordet før og efter -FARVE-

Laver du selv scriptet?

Output fra denne kode er ordene
is
7722BB
bil
993300

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>
<?
$string="Jeg har købt en is-FARVE-7722BB ikke en bil-FARVE-993300 vel?";
echo "Streng: $string";



$result=explode(' ',$string);
$count=0;
$count1=0;
foreach($result as $value){
    echo "Værdi: $value <br>";
    if(strstr($value,'-FARVE-')){
        echo "$count <br>";
        $tabel[$count1]=$value;
        echo"$tabel[$count1]";
        $count1++;
    }
$count++;
}

foreach($tabel as $value){
    $temp=strpos($value,'-');
    echo "$temp <br>";
    $temp1=$temp+7;
    $sub=substr($value,0,$temp);
    $sub1=substr($value,$temp1,strlen($value));

    echo"<br>$sub";
    echo"<br>$sub1<br>";

}
?>



</body>

</html>
Avatar billede h_h Nybegynder
25. januar 2011 - 13:42 #4
Super - TAK!
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
Kurser inden for grundlæggende programmering

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