Avatar billede misgo Nybegynder
18. juli 2010 - 15:03 Der er 6 kommentarer og
1 løsning

konverter flere ting

hejsa

jeg har et lille stykke php kode her, men som ikke virker rigtigt.

__________
<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<form action="" method="POST">
<textarea name="text" rows="10" cols="50"></textarea>
<input type="submit" name="submit" value="submit">
</form>
</html>
<?php
$text = $_POST['text'];

$runde = preg_match("/(RUNDE - )([0-9])( -)/", $text, $runderegs);   
   
$replace = array (
    $runderegs[0] => "[ b]".$runderegs[0]."[ /b]"
);
   
echo nl2br(strtr($text,$replace));

?>
__________

Hvis jeg skriver dette i tekstområdet:
__________
RUNDE - 1 -

RUNDE - 2 -

RUNDE - 3 -

RUNDE - 4 -

RUNDE - 5 -
__________

bliver det kun til dette:
__________
[ b]RUNDE - 1 -[ /b]

RUNDE - 2 -

RUNDE - 3 -

RUNDE - 4 -

RUNDE - 5 -
__________

Men mit spørgsmål er, hvorfor der ikke kommer [ b] og [ /b] rundt om dem alle?
altså så der kommer til at stå dette:
__________
[ b]RUNDE - 1 -[ /b]

[ b]RUNDE - 2 -[ /b]

[ b]RUNDE - 3 -[ /b]

[ b]RUNDE - 4 -[ /b]

[ b]RUNDE - 5 -[ /b]
__________
Avatar billede majbom Novice
18. juli 2010 - 17:10 #1
hvad med bare:

$replace = "[ b]$1[ /b]";

echo nl2br(preg_replace("/(RUNDE - [0-9] -)/", $replace, $text));


?
Avatar billede misgo Nybegynder
18. juli 2010 - 18:07 #2
hvad så hvis jeg skal have 2 ting på, fx "RUNDE - 1 -" og "OMGANG 3"

har prøvet det her, men så kommer det hele 2 gange:
__________
$runde = preg_replace("/(RUNDE - [0-9] -)/", "$1", $text);
$omgang = preg_replace("/(OMGANG [0-9])/", "$1", $text);

echo nl2br($runde.$omgang);
__________

har du så en løsning på det? :)
Avatar billede misgo Nybegynder
18. juli 2010 - 18:10 #3
havde lige glemt bb koder :)

her er den

______________________________
hvad så hvis jeg skal have 2 ting på, fx "RUNDE - 1 -" og "OMGANG 3"

har prøvet det her, men så kommer det hele 2 gange:
__________
$runde = preg_replace("/(RUNDE - [0-9] -)/", "[ b]$1[ /b]", $text);
$omgang = preg_replace("/(OMGANG [0-9])/", "[ b]$1[ /b]", $text);

echo nl2br($runde.$omgang);
__________

har du så en løsning på det? :)
Avatar billede majbom Novice
18. juli 2010 - 21:22 #4
$replace = preg_replace("/(RUNDE - [0-9] -)/", "[ b]$1[ /b]", $text);
$replace = preg_replace("/(OMGANG [0-9])/", "[ b]$1[ /b]", $replace);

echo nl2br($replace);


det er klart den skriver det to gange i dit eksempel, anden gang skal du bruge resultatet af første preg_replace og kun udskrive resultatet af anden preg_replace...
Avatar billede misgo Nybegynder
18. juli 2010 - 22:51 #5
jeg takker mange gange :)

giver du lige et svar så? :)
Avatar billede majbom Novice
18. juli 2010 - 22:59 #6
selv tak :)
Avatar billede majbom Novice
19. juli 2010 - 07:47 #7
tfp
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