Avatar billede dixondk Nybegynder
28. november 2006 - 23:59 Der er 13 kommentarer og
1 løsning

Mit PHP-CMS-system formater mine TXT-filer forkert.. tror jeg

jeg har et lille men mega irriterende problem med mine txt-filer som jeg loader ind i Flash... jeg har oprettet et lille PHP-CMS-system der henter txt-filer ind i et textarea på en HTML-side hvor man kan gemme og rette oplysningerne...

jeg havde først et problem med at få vist æ,ø og å men det ordnede sig da jeg i <head> valgte "charset=UTF-8".

Da jeg først oprettede txt-filerne så de fine ud i Flash.. men når jeg retter dem, bliver mellemrummet imellem linierne dobbelt så store, så jeg bliver nødt til at skrive et <br> i txt-filen hver gang der skal være et enkelt linieskift. det er jo ikke super cool hvis en evt kunde skal rette i sine tekster...

er der et andet format/charset jeg skal prøve? har prøvet "iso-8859-1" men så viser den ikke æ,ø og å når jeg er i mit CMS-system...

I flash er det dynamiske tekstfelt sat til "render as HTML"
og i AS står der "system.useCodepage = true;" disse ting er noget jeg har lånt fra andre ting, og er ikke helt klar over hvordan de virker... men jeg tænkte de kunne være vigtige

håber i kan hjælpe mig...
Avatar billede dcheng Novice
29. november 2006 - 01:37 #1
http://dk.php.net/nl2br/
Det skulle hvis gøre det...

Denne viser Æ,Ø,Å.... så det passer ike helt det du skriver..??
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Avatar billede dcheng Novice
29. november 2006 - 01:38 #2
Jeg kan desværre ikke hjælpe på flash delen da jeg ikke er inde i det..
Avatar billede dixondk Nybegynder
29. november 2006 - 11:55 #3
Jeg tænkte også at "charset=iso-8859-1" burde kunne gøre det... men det virker bare ikke...!?!?!?
Avatar billede showsource Seniormester
29. november 2006 - 11:57 #4
Hvordan åbner du txtfilerne?
Og hvordan gemmer du?
Avatar billede dixondk Nybegynder
29. november 2006 - 12:32 #5
Jeg åbner og gemmer således:
  $fil = '../flash/minfil.txt';

if ( !empty( $_POST['gem'] ))
  {
    $fp = fopen( $fil, 'w' );
    fwrite( $fp, $_POST['txt'] );
    fclose( $fp );
    header( 'location: ' . $_SERVER['PHP_SELF'] );
  }
  $txt = file_get_contents( $fil );

[...]

<td><form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
<textarea name="txt" rows="15" cols="60"><?= $txt ?></textarea>
<br>
<button name="gem" type="submit">Gem</button>
</form></td>

i min head står der
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Avatar billede showsource Seniormester
29. november 2006 - 12:52 #6
Måske et b kan fixe de dobbelte linier?

$fp = fopen( $fil, 'wb' );
Avatar billede dixondk Nybegynder
29. november 2006 - 13:05 #7
hmmm... det ser ikke ud som om der sker noget andet... hvad skulle b'et gøre?
Avatar billede showsource Seniormester
29. november 2006 - 13:18 #8
ehh, noget med at arbejde med filen i binart mode.
Har selv lavet www.malerholm.dk, og her kan han netop selv gå ind på en adminside og rette i teksten.
Og nu jeg kikker kode, så bruger jeg wt og ikke wb.
Og før jeg gemmer, fjerner jeg linieskift.

$str = ereg_replace("(\r\n|\n\r|\n|\r)+", "", $str);


if ( !empty( $_POST['gem'] ))
  {
    $str = ereg_replace("(\r\n|\n\r|\n|\r)+", "", $_POST['txt']);
    $fp = fopen( $fil, 'wt' );
    fwrite( $fp, $str );
    fclose( $fp );
    header( 'location: ' . $_SERVER['PHP_SELF'] );
  }
Avatar billede dixondk Nybegynder
29. november 2006 - 13:51 #9
@showsource - jeg prøvede lige din kode... og nu får jeg slet ingen linieskift :)

bare så jeg ikke misforstår noget.. kunne jeg få dig til at skrive koden som jeg har skrevet foroven på den måde du ville gøre det...?
Avatar billede olebole Juniormester
29. november 2006 - 13:59 #10
<ole>

Er text-filerne gemt korrekt? Når du gemmer dem i Notepad, skal du vælge Kodning -> UTF-8  ;o)

/mvh
</bole>
Avatar billede showsource Seniormester
29. november 2006 - 14:10 #11
<?php
$fil = 'minfil.txt';

if (isset($_POST["txt"]) && trim($_POST["txt"]) != "")
  {
    $str = trim(stripslashes($_POST["txt"]));
    $str = "_root.text.feltnavn=". $str;
    $str = str_replace("\n", "", $str);

    $fp = fopen( $fil, 'wt' );
    fwrite( $fp, $str );
    fclose( $fp );
    header("Location:". $_SERVER['PHP_SELF']);
  }
  $txt = file_get_contents( $fil );

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Fopen</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />


</head>
<body>


<form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
<textarea name="txt" rows="15" cols="60"><?= $txt ?></textarea>
<br>
<button name="gem" type="submit">Gem</button>
</form>

<p>

<?php
echo nl2br($txt);
?>
</p>
</body></html>
Avatar billede dixondk Nybegynder
29. november 2006 - 14:13 #12
@olebole

Når de er oprettet i notepad og gemt i UTF-8 og jeg uploader dem, ser de fine ud... det er med det samme jeg retter i dem i mit CMS-system, at der kommer dobbelt linieskift.. det er som om at txt-filen får tilføjet en forkert kodning... selvom der står UTF-8 i <head>
Avatar billede dixondk Nybegynder
29. november 2006 - 14:20 #13
@Showsource

YES...!!!!! så virker det.... tusind tak for hjælpen.... det er bare dejligt... :)
Avatar billede showsource Seniormester
29. november 2006 - 14:25 #14
jahh, mit første forslag med ereg() brugte jeg til at sikre "keywords" lå på en linie.

Men med tekst som skulle gemmes med linieskift, skulle det være str_replace()

Præcis hvorfor der er forskel, ved jeg ikke ?
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

IT-JOB

Riskpoint A/S (Riskpoint Solutions Limited)

IT Business Analyst

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operationscenter i Cyberdivisionen Hvidovre

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen