Avatar billede misgo Nybegynder
08. juli 2010 - 15:51 Der er 13 kommentarer

konverter

hejsa :)

hvis vi nu siger at jeg har et textarea og jeg skriver følgende i:

_____
Hej, mit navn er John og jeg er 23 år gammel.

Jeg bor derhjemme med mine 3 børn og min søde kone.
_____

Hvordan kan jeg så få den til at skrive dette i et andet textarea eller bare nedenunder:

_____
Hej, mit navn er [ b]John[ /b] og jeg er [ b]23[ /b] år gammel.

Jeg bor [ color=#ff0000]derhjemme[ /color] med mine [ b]3[ /b] børn og min [ b]søde[ /b] kone.
_____

og ligeledes hvis jeg skriver dette:

_____
Hej, mit navn er Anders Jensen og jeg er 15 år gammel.

Jeg bor i skoven med mine 2 børn og min dejlige kone.
_____

.. skal det blive til dette:
_____
Hej, mit navn er [ b]Anders Jensen[ /b] og jeg er [ b]15[ /b] år gammel.

Jeg bor [ color=#ff0000]i skoven[ /color] med mine [ b]2[ /b] børn og min [ b]dejlige[ /b] kone.
_____


Håber der er nogen der kan finde ud af det og gider hjælpe :)
På forhånd tak :)
Avatar billede michael_stim Ekspert
08. juli 2010 - 16:14 #1
Er ikke helt med. Det du spørger om er helt umuligt, du beder PC'en om at tænke selv (mm du vil have nogle kolossale arrays). Det du kan gøre er at, med javascript, få den til at sætte "tags" rundt om det du markerer.
Avatar billede michael_stim Ekspert
08. juli 2010 - 16:20 #2
Er der nogle klare regler for hvornår der skal gøres hvad, kan det sikkert ordnes med noget regexp. Men det er ikke min stærke side.
Avatar billede misgo Nybegynder
08. juli 2010 - 16:31 #3
Altså det den egentlig skal gøre er, at den skal finde en tekst. fx:
"Hej, mit navn er ", og derefter skal den tage det der står efter, og sætte tags rundt om.

ved ikke om man kan gøre det med preg_match:

$text = Den tekst der er skrevet ind i tekst området

$replace = array(
"Hej, mit navn er ".preg_match('/^[A-Za-z]/', $text) => "Hej, mit navn er ".preg_match('/^[A-Za-z]/', $text)
);

echo strtr($text,$replace);
Avatar billede wanze Nybegynder
08. juli 2010 - 17:19 #4
<?php

$arr = array(
            "Hej, mit navn er John og jeg er 23 år gammel. Jeg bor derhjemme med mine 3 børn og min søde kone.",
            "Hej, mit navn er Anders Jensen og jeg er 15 år gammel. Jeg bor i skoven med mine 2 børn og min dejlige kone."
        );

foreach($arr as $line) {
    print preg_replace("/Hej, mit navn er ([a-zA-ZæøåÆØÅ ]+) og jeg er (\d+) år gammel. Jeg bor ([a-zæøå ]+) med mine (\d+) børn og min ([a-zæøå]+)+ kone./",
                        "Hej, mit navn er [ b]$1[/b]  og jeg er [ b]$2[/b] år gammel. Jeg bor [ color=#ff0000]$3[/color] med mine [ b]$4[/b] børn og min [ b]$5[/b] kone",$line)."<br/>";
}

?>

Ovenstående kode vil returnere:
Hej, mit navn er [ b]John[/b] og jeg er [ b]23[/b] år gammel. Jeg bor [ color=#ff0000]derhjemme[/color] med mine [ b]3[/b] børn og min [ b]søde[/b] kone
Hej, mit navn er [ b]Anders Jensen[/b] og jeg er [ b]15[/b] år gammel. Jeg bor [ color=#ff0000]i skoven[/colr] med mine [ b]2[/b] børn og min [ b]dejlige[/b] kone
Avatar billede majbom Novice
08. juli 2010 - 17:16 #5
altså hvis du er sikker på at brugeren skriver præcist det du regner med, så kan det jo gøres med preg_replace og noget regex...

btw - det er sq tidligt at hr jensen blev far ;)
Avatar billede misgo Nybegynder
08. juli 2010 - 18:10 #6
Jeg har prøvet få at gøre så den skrifter det ud hvis man skriver det i et tekstområde.. men kan ikke få det til at virke:

<html>
<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'];
$arr = array(
            $text
        );

foreach($arr as $line) {
    print preg_replace("/Hej, mit navn er ([a-zA-ZæøåÆØÅ ]+) og jeg er (\d+) år gammel. Jeg bor ([a-zæøå ]+) med mine (\d+) børn og min ([a-zæøå]+)+ kone./",
                        "Hej, mit navn er [ b]$1[/b]  og jeg er [ b]$2[/b] år gammel. Jeg bor [ color=#ff0000]$3[/color] med mine [ b]$4[/b] børn og min [ b]$5[/b] kone",$line)."<br/>";
}

?>


Den skriver bare den linje man har skrevet ind.
Avatar billede wanze Nybegynder
08. juli 2010 - 18:57 #7
Du skal være opmærksom på, at der i det eksempel jeg har lavet ikke tillades lineskift.
Avatar billede misgo Nybegynder
08. juli 2010 - 19:01 #8
jeg bruger heller ikke linjeskift når jeg skriver det ind :)
Avatar billede wanze Nybegynder
08. juli 2010 - 19:35 #9
Det virker fint her. Hvad skriver du ind i boksen?
Avatar billede misgo Nybegynder
08. juli 2010 - 21:06 #10
jeg skriver det her ind i boksen:

Hej, mit navn er Hans og jeg er 18 år gammel. Jeg bor med med mine 2 børn og min dejlige kone.
Avatar billede wanze Nybegynder
08. juli 2010 - 21:38 #11
Jeg har lige prøvet med den kode du sagde der ikke virkede og den der sætning, og det virker fint her. Du har nok lavet en fejl et andet sted.
Avatar billede misgo Nybegynder
08. juli 2010 - 23:11 #12
det må jeg have :)
har også fået det til at virke nu ^^

smider du lige et svar? :D
Avatar billede majbom Novice
04. november 2010 - 14:18 #13
går ud fra det er wanze vi venter på?
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