Avatar billede cybermaster Nybegynder
28. december 2007 - 23:10 Der er 17 kommentarer og
1 løsning

preg_replace udskift ord med variabler.

$strukture = preg_replace("/#her</", $her, $strukture);

$strukture = preg_replace("/#(.*)</", $//1, $strukture);
---------------------------------------------------------
Findes der en måde hvor man kan tage ord fra teksten, og få dem udskiftet med en variable med samme navn?

Ved ikke om i er med, har forsøgt at skrive et ex så i kan være med ;o)
Avatar billede erikjacobsen Ekspert
28. december 2007 - 23:18 #1
Det ville blive noget rod. Men hvis du har

  $tabel['her']='Ullerslev mose';
  $tabel['der']='Peoria';

så er der nok en bedre chance.
Avatar billede asn24 Nybegynder
28. december 2007 - 23:29 #2
Vil du lave det med database styrring, for så skulle det ikke være noget problem :)

Hvis du laver 2 tabeller i databasen;

1: tekst
data
id

2: replace
orgword
repword
t_id

Hvis du så bare laver en while løkke der kører scriptet igennem for hver række der er i din replace tabel, burde du nemt kunne gøre det, nogenlunde sådan;

$textid = $row['id']; //fra tabellen tekst

$replace = "SELECT * FROM replace WHERE t_id ='$textid'";
while($row = mysql_fetch_array($replace)) {
    $orgword = $row['orgword'];
    $repword = $row['repword'];

    $textword = preg_replace("$orgword", $repword, $textword);

}


Er ikke hundrede på jeg har forstået dit problem helt, men sig endelig til hvis jeg er skævt på den.
Avatar billede cybermaster Nybegynder
28. december 2007 - 23:47 #3
Har prøvet at lege lidt med det her:

$strukture = preg_replace("/#([a-zA-Z_-]+)(\"| |<)/si", $row['\\1']  . "\\2" , $strukture);

Men stadigvæk forgæves.

Det der er i det, var at det skulle være mere automatisk, end at man skal skrive det for hver sted man skal bruge scriptet i fremtiden.
Avatar billede cybermaster Nybegynder
28. december 2007 - 23:50 #4
kunne måske nævne, at jeg er started på at lege med klasser, det er sku da lidt anderledes man skal tænke her ;o)
Avatar billede erikjacobsen Ekspert
29. december 2007 - 00:03 #5
Men er du interesseret i en løsning henad den fra 23:18:46 ?
Avatar billede cybermaster Nybegynder
29. december 2007 - 00:07 #6
ja tak, meget gerne.
Avatar billede erikjacobsen Ekspert
29. december 2007 - 00:11 #7
$s="Fra #her< til #der< er der meget langt";

  $tabel['her']='Ullerslev mose';
  $tabel['der']='Peoria';

  print preg_replace("/#(.*?)</e", '$tabel[$1]', $s);

Resultatet på: http://n0p.com/812146.php
Generelt bør http://php.net/preg_replace_callback dog benyttes.
Avatar billede erikjacobsen Ekspert
29. december 2007 - 00:15 #8
Og et simplere alternativ:

  $s="Fra #her< til #der< er der meget langt";

  $tabel['#her<']='Ullerslev mose';
  $tabel['#der<']='Peoria';

  print strtr($s,$tabel);
Avatar billede cybermaster Nybegynder
29. december 2007 - 00:39 #9
Jeps ;o) ;o) Så spiller det ....

Erik Jacobsen

1000 Tak ... Endnu engang.

Du gør det jo altid for mega sejt.

Et tillægs spørgsmål laver du det her til dagligt?

Og kan man indhente et tilbud fra dig på en større opgave der skal laves?
Avatar billede erikjacobsen Ekspert
29. december 2007 - 00:43 #10
;) Det har du ikke råd til ...
Avatar billede cybermaster Nybegynder
29. december 2007 - 00:45 #11
Må heller lige skrive at det er 20K+ vi snakker?

Så du ikke er skremt væk inden nul komma 5.

Ved godt det ikke er det store i forhold til så meget andet, det kan også være du siger det mangler 6 nuller...

Men må ærlig indrømme, at jeg ved ikke hvorlangt tid en proff som dig er om at bygge, noget der vil tage mig måske 2 - 4 måneder.
Avatar billede cybermaster Nybegynder
29. december 2007 - 00:48 #12
Du må også meget gerne ligge et svar.

Muligvis ikke, men det er dybt seriøs. Jeg er selvstændig og har været det i 6 år. Ikke inden for IT, så ville jeg for længst være gået på røven.

Men synes selv jeg har en knald hamerne go ide, men mangler en til at bygge det.
Avatar billede erikjacobsen Ekspert
29. december 2007 - 00:50 #13
Ja, ja, men du kan da prøve at kontakte mig ... det er din første test, at du kan finde ud af dét ;)
Avatar billede cybermaster Nybegynder
29. december 2007 - 00:58 #14
ja ja, jeg er ikke helt tabt bag en vogn.

Ville bare spørge her, istedet for at kontakte dig, hvis du sagde "no go" var der jo ingen grund til at spilde din tid...

Så skriver, eller sender en brev due en af dagene.

Tak for hjælpen...

Og husk at lig et svar.
Avatar billede erikjacobsen Ekspert
29. december 2007 - 09:01 #15
Ah, men jeg samler slet ikke på point, tak.
Avatar billede cybermaster Nybegynder
29. december 2007 - 14:07 #16
Ah, Så dropper vi da det.

Men skriver til dig, og endnu en gang, tak for hjælpen.

Og godt nytår til jer alle.

Mvh Henrik
Avatar billede cybermaster Nybegynder
29. december 2007 - 14:07 #17
.
Avatar billede cybermaster Nybegynder
04. maj 2008 - 23:22 #18
Faldt over denne, der er meget i relation til mit spørgsmål.

$one = "two";
$two = "three";
$three = "four";
$four = "five";
echo $$$$one; //prints 'five'.
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