Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Problém s textovými soubory na Macu

Aktivity
Avatar
Kafac
Člen
Avatar
Kafac:8.12.2019 13:07

Ahoj všichni, měl bych takový dotaz. Dělám úkol, kde musím pracovat s textovými soubory. Jedná se pouze o zápis a vypsání obsahu textového souboru zpět na stránku. Když můj kód použiju na OS Windows vše funguje jak má. Když to použiju doma na svém Macu nic se neděje. Soubor se ani nevytvoří. Zkoušel jsem zadávat i absolutní cestu, u ní si nejsem tedy zcela jistý, zda byla správně (se soubory jsem pracoval vždy hlavně na Windows).
Měl tu někdo podobný problém a podařilo se mu ho vyřešit? Budu rád za každou radu :). Díky!

$soubor = fopen("‎⁨textak.txt", "a");
fwrite($soubor, $popis);
fclose($soubor);
Odpovědět
8.12.2019 13:07
"Lepší, než předpovídat budoucnost, je vytvořit ji." Bill Gates
Avatar
ChaosMachine
Člen
Avatar
Odpovídá na Kafac
ChaosMachine:8.12.2019 14:41

Tohle jsem dělal nedávno

$file = 'file.txt';     //otevře soubor file.txt
   if (!($fp = fopen($file, 'a+'))) { //pakliže file.txt neexistuje, založí ho
    return;
}


$current = file_get_contents($file); //Zjistí co je nyní ve file.txt (ochrana proti přepsání)
// Append a new person to the file
$current .= $_POST["name"]."\n"; //Přidá k nynějšímu stavu nějáký string (zde POST metoda)
// Write the contents back to the file
file_put_contents($file, $current);     //A zapíše nový $current do složky

Funguje mi to tak na oficiálním serveru (Externí firma, myslím že mají linuxové servery)

 
Nahoru Odpovědět
8.12.2019 14:41
Avatar
Kafac
Člen
Avatar
Kafac:8.12.2019 15:26

Díky, teď to zkouším ale stále mi to nefunguje :/ .

<?php
        @$popis=$_POST['popis'];
        $file = 'file.txt';     //otevře soubor file.txt
   if (!($fp = fopen($file, 'a+'))) { //pakliže file.txt neexistuje, založí ho
    return;
}


$current = file_get_contents($file); //Zjistí co je nyní ve file.txt (ochrana proti přepsání)
// Append a new person to the file
$current .= $popis."\n"; //Přidá k nynějšímu stavu nějáký string (zde POST metoda)
// Write the contents back to the file
file_put_contents($file, $current);     //A zapíše nový $current do složky


        ?>
Nahoru Odpovědět
8.12.2019 15:26
"Lepší, než předpovídat budoucnost, je vytvořit ji." Bill Gates
Avatar
Kafac
Člen
Avatar
Kafac:8.12.2019 15:34

Zkoušel jsem i přes TextEdit založit obyčejný soubor s příponou txt a hodit to do stejné složky, ale i tak nic. Nejvíce mě právě zarazilo, že jsem si kód poslal přes mail do školy, spustil jsem to a vše běželo jak mělo.

Nahoru Odpovědět
8.12.2019 15:34
"Lepší, než předpovídat budoucnost, je vytvořit ji." Bill Gates
Avatar
Filip Němeček
Tvůrce
Avatar
Filip Němeček:8.12.2019 15:47

Jako že ani přes TextEdit se nevytvoří? Co příkaz touch v Terminal? Jakou máš verzi systému? Jestli aktuální Calatina, tak ta je dost agresivní co se týká aplikací a přístupu k souborům.

 
Nahoru Odpovědět
8.12.2019 15:47
Avatar
Kafac
Člen
Avatar
Kafac:8.12.2019 16:06

Nene mám Mojave. Omlouvám se, možná jsem se špatně vyjádříl. Přes TextEdit se mi soubor .txt vytvoří. Ale i tak se nic neděje. Myslel jsem ,že by mohla být chyba jen v tom vytvoření. Ale vždy tam selže ten stream mezi tím. Nevím, jestli to je tím, že se tam musí psát absolutní cesta. Zkoušel jsem psát tuhletu, akorát s lomítkama. Ale když mám jak php soubour, tak i txt soubor ve stejné složce, tak by snad měla stačit jen ta relativní.

Tuhle jsem psal, akorát jsem tam hodil lomítka a za htdcos ještě lomítko s názvem textáku.

Macintosh HD⁩ ▸ ⁨Aplikace⁩ ▸ ⁨XAMPP⁩ ▸ ⁨xamppfiles⁩ ▸ ⁨htdocs⁩
Nahoru Odpovědět
8.12.2019 16:06
"Lepší, než předpovídat budoucnost, je vytvořit ji." Bill Gates
Avatar
Filip Němeček
Tvůrce
Avatar
Filip Němeček:8.12.2019 16:12

To spíš vypadá jako na problém s právy. Ověřil bych pod jakým uživatelem běží PHP skript a jestli má korektní přístupy pro zápis.

 
Nahoru Odpovědět
8.12.2019 16:12
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.