Avatar billede nicocarlos Nybegynder
22. november 2004 - 20:21 Der er 20 kommentarer og
1 løsning

preg_replace hvordan laves det?

Hejsa jeg har lavet et par stykker som denne:
$string = preg_replace("/\[u\](.+?)\[\/u\]/", "<u>$1</u>", $string);

Men hvordan kan jeg f.eks.
når folk skriver [lastedit] uden afluttende så skal den skifte [lastedit] ud med en mySQL variabel?
Avatar billede olebole Juniormester
22. november 2004 - 20:27 #1
<ole>

Er [lastedit] det er eneste, der skal udskiftes - eller har du en liste af forskellige 'tags'?

/mvh
</bole>
Avatar billede nicocarlos Nybegynder
22. november 2004 - 20:33 #2
til at starte med er det bare [lastedit] jeg tror godt jeg kan finde ud af at udskifte andre når jeg først finder ud af hvordan [lastedit] kan udskfites.
Avatar billede coderdk Praktikant
22. november 2004 - 20:40 #3
Ikke nødvendigt med preg osv, blot:

str_replace( "[lastedit]", "en hest", $dintext );
Avatar billede nicocarlos Nybegynder
22. november 2004 - 20:42 #4
okay lige et lile spørgsmål til, hvordan skal jeg include den str_replace

Hvis jeg vil have den tjekker $text ? or hvad laver en "en hest" der? O_o
Avatar billede hmortensen Nybegynder
22. november 2004 - 20:45 #5
Hvis du har flere tags, kan et array benyttes:

$before = array("[lastedit]", "[hest]");
$after = array("sql edit", "sql hest");
$text = str_replace($before, $after, $text);
Avatar billede hmortensen Nybegynder
22. november 2004 - 20:46 #6
Og der kunne din <u> også indgå:

$before = array("[lastedit]", "", "");
$after = array("sql edit", "<u>", "</u>");
Avatar billede coderdk Praktikant
22. november 2004 - 20:46 #7
$nytext = str_replace( "[lastedit]", $dinmysqltidsvariabel, $dintext );
Avatar billede nicocarlos Nybegynder
22. november 2004 - 20:48 #8
hmm jeg har ikke en mySQL variabl, jeg tror kun jeg behøver $dintext.
Kan jeg bare lave:
$nytext = str_replace ("[lastedit]",$dintext); ?
Avatar billede olebole Juniormester
22. november 2004 - 20:50 #9
Så kan man ligeså godt bruge oversætter funktionen 'strtr()', der er beregnet til netop dette:

$transArr = array(
  "[lastedit]" = "en tekst",
  "[firstedit]" = "en anden tekst"
);

$nyStr = strtr($oprindelig_streng, $transArr);
Avatar billede olebole Juniormester
22. november 2004 - 20:51 #10
... og med variabler:

$transArr = array(
  "[lastedit]" => $variabel_1,
  "[firstedit]" => $variabel_2
);

$nyStr = strtr($oprindelig_streng, $transArr);
Avatar billede hmortensen Nybegynder
22. november 2004 - 20:51 #11
Ole, strstr() matcher den ikke kun første forekomst ?
Avatar billede olebole Juniormester
22. november 2004 - 20:52 #12
Ooops ... der var fejl i den første (den med strenge). Den skulle se sådan ud:

$transArr = array(
  "[lastedit]" => "en tekst",
  "[firstedit]" => "en anden tekst"
);

$nyStr = strtr($oprindelig_streng, $transArr);
Avatar billede olebole Juniormester
22. november 2004 - 20:52 #13
Jo, derfor er det heller ikke den, jeg har brugt  ;o)
Avatar billede olebole Juniormester
22. november 2004 - 20:53 #14
strtr -> 'string translate'
strstr -> 'string in string'
Avatar billede hmortensen Nybegynder
22. november 2004 - 20:53 #15
Ahh, de små bogstaver :)
Avatar billede olebole Juniormester
22. november 2004 - 20:54 #16
Ahaaaa ...... dét er bogstaver ...!?!!  ;D
Avatar billede nicocarlos Nybegynder
22. november 2004 - 21:30 #17
Jeg har prøvet at bruge følgende variabel:
$lastedittime=date("d-m-Y G:i ", $test[lastedit]);

Men den viser bare:
01-01-1970 1:00

Kan det være fordi det ikke er muligt med date eller?
Avatar billede nicocarlos Nybegynder
22. november 2004 - 21:33 #18
lille fejl jeg lavede virker nu :)
Avatar billede nicocarlos Nybegynder
22. november 2004 - 21:33 #19
vil i dele points eller hvad?
Avatar billede olebole Juniormester
22. november 2004 - 21:51 #20
1. Brug altid gåseøjne i array-kald (det har dog ikke noget med denne fejl at gøre)
2. Hvad står der i $test["lastedit"], hvis du printer den ud?
Avatar billede olebole Juniormester
22. november 2004 - 21:52 #21
Glem #2 ... jeg havde overset din forrige kommentar  :)
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