Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP i znacznik linuxa
Michcio_
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


Witam,
Mam problem poniewaz mam skrypt do edytowania pliku . I chciałbym żeby na końcu każdej linijki dawało taki kwadracik linuxa (czyli nowa linijka , linuxa) bo chcę żeby było przystosowane do linuxa. Dałem takie coś:
$dane = str_replace("\n","tutajtenkwadrat\n", $dane);
I daje na koncu linijki po 3 kwadraty , co zrobic zeby jeden kwadrat był?
O to cały skrypt:
Kod
<meta name="test - blabla" http-equiv="content-type" content="text/html; charset=utf-8"/>
<?php
$pole1 = trim($_POST['pole1']);
$pole2 = trim($_POST['pole2']);

if(empty($pole1) and empty($pole2)) {
    
// prosty formularz zawierający dwa pola
$fd = fopen("test/config.ini", "r");
$czytaj_ini = fread($fd, filesize("test/config.ini"));
echo "<form action=\"\" method=\"post\">
<textarea name=\"pole2\" style=\"width: 500px; height: 500px;\">$czytaj_ini
</textarea><br />
<input type=\"submit\" value=\"Zapisz\" />
</form>";
}
else {
    
    // dane pochodzące z formularza
    $dane = $pole1."".$pole2."";
    $dane = str_replace("\n","
\n", $dane);

    // przypisanie zmniennej $file nazwy pliku
    $file = "test/config.ini";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "w");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);
  
    echo "Dane zostały zapisane!<br />";
    echo "<a href=\"panel.php?id=zobacz_mape\">Zobacz config</a>";
}


?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
pest
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 15
Dołączył: 10.12.2007
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Możesz chociaż wyjaśnić o co ci tak na prawdę chodzi, bo stwierdzenie, że chcesz mieć kwadracik na końcu każdej linii jakoś mnie nie przekonuje.

"Enter" w windows składa się z 2 znaków: chr(13).chr(10) (co odpowiada również opisie "\r\n"), natomiast "enter" w linux składa się z 1 znaku chr(10) (co odpowiada właśnie znakowi "\n").

Kiedy windows napotyka sam znak \n, to wyświetla kwadracik, bez przejścia do nowej linii (w notatniku, wordpad automatycznie zamienia \n na \r\n).

Dodatkowo wiele funkcji w PHP wstawia znaczki końca linii zależnie od systemu w którym pracuje PHP.
Go to the top of the page
+Quote Post
Michcio_
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


No bo mam config do gry i chce żeby go edytować na stronie , ale na stronie nie przystosowywuje do linuxa. Chce żeby na końcu lini był enter tak jak w linuxie jest , np. wezme w kompie edytorem linuxa i jak potem notatnikiem wezme to taki kwadracik jest. Chce żeby w tym polu:
$dane = str_replace("\n","TUTAJ", $dane); był enter w systemie linux

Ten post edytował Michcio_ 30.07.2008, 10:44:21
Go to the top of the page
+Quote Post
Zbychu666
post
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 5
Dołączył: 13.07.2008

Ostrzeżenie: (0%)
-----


Cytat(Michcio_ @ 30.07.2008, 11:40:18 ) *
$dane = str_replace("\n","TUTAJ", $dane); był enter w systemie linux


To JEST znak nowej linii jak w linux. Jeśli masz plik z windowsowymi znakami nowej linii, to rób na nim:


  1. <?php
  2. $dane = str_replace("r","", $dane);
  3. ?>
Go to the top of the page
+Quote Post
pest
post
Post #5





Grupa: Zarejestrowani
Postów: 78
Pomógł: 15
Dołączył: 10.12.2007
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Konwersja entera linuksowego na windoswowy
  1. <?php
  2. str_replace("\n", "r\n", $string);
  3. ?>

Konwersja odwrotna
  1. <?php
  2. str_replace("\n", "r\n", $string);
  3. ?>
Go to the top of the page
+Quote Post
Xniver
post
Post #6





Grupa: Zarejestrowani
Postów: 108
Pomógł: 26
Dołączył: 29.02.2008

Ostrzeżenie: (0%)
-----


Przecież te powyższe kody są te same(albo mi się wydaje).

Prawidłowa konwersja z M$ Windows:
  1. <?php
  2. $string = str_replace("r", '', $string);
  3. ?>


Ten post edytował Xniver 31.07.2008, 01:29:58
Go to the top of the page
+Quote Post
Michcio_
post
Post #7





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


Ok, naprawiłem dałem:
$dane = $pole2;
$dane = str_replace("\r\n",tutaj ten kwadrat", $dane);
Dzieki za pomoc

Ten post edytował Michcio_ 31.07.2008, 11:18:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:43