NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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 – Lekce 2 - Práce s textovými soubory v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
David Ryba
Člen
Avatar
David Ryba:24.1.2021 18:41

Ahoj,
jsem úplný amatér, ale snažím se napsat jednoduchý script na změnu hesel u síťových zařízení MikroTik. Tím co je pod API zatím jen testuji jestli se mohu připojit. Myšlenka je taková, že si do textového soubory vložím adresy zařízení pod sebe, spustí script a on bude měnit adresy v cyklech jednu po druhé, jenomže, když použiji tento kód, tak se akce provede jen u posledního, problém je odentrování za každým řádkem, dá se to nějak ošetřit?

Děkuji David

<?php
require('routeros_api.class.php');
$soubor = "adresy.txt";
$API = new routerosAPI();
$radky = file($soubor);

    foreach($radky as $i => $adresa) {

echo($radky . $i . $adresa);
//$API->debug = true;

if ($API->connect($adresa, 'admin', 'tajneheslo')) {
        $API->disconnect();
    echo($adresa . ' - připojeno </br>');
} else {
    echo($adresa . ' - nepřipojeno </br>');

}
}
?>
 
Odpovědět
24.1.2021 18:41
Avatar
David Ryba
Člen
Avatar
Odpovídá na David Ryba
David Ryba:26.1.2021 8:23

Ahoj,
jenom aby s tím někdo neztrácel čas, tak jsem to vyřešil pomocí csv

<?php
require('routeros_api.class.php');
$API = new routerosAPI();
     $adresy = "adresy.csv";


          if(file_exists($adresy)) {
            $resource = fopen($adresy, "r");
            if(!$resource) {
              echo "Při otevírání CSV souboru pro čtení nastala chyba!";
              exit();
            }

            do {
              $adresy_pole = fgetcsv($resource);
              if($adresy_pole === NULL) {
                echo "CSV soubor nebyl správně otevřen!";
                exit();
              }
              if($adresy_pole === FALSE) { // značí (pravděpodobně) dočtení souboru
                break; // vyskočíme z nekonečné smyčky
              }
              foreach($adresy_pole as $adresa) { // vypíše adresy
                //echo ($adresa . '</br>');
                  if ($API->connect($adresa, 'admin', 'tajneheslo')) {
                      $API->disconnect();
                      echo($adresa . ' - připojeno </br>');
                  } else {
                      echo($adresa . ' - nepřipojeno </br>');

                  }
              }

            } while(TRUE);

            if(!fclose($resource)) {
              echo "Při zavírání CSV souboru po čtení dat nastala chyba!";
              exit();
            }
          }
?>

Díky

Editováno 26.1.2021 8:25
 
Odpovědět
26.1.2021 8:23
Avatar
Michal Krátký
Tvůrce
Avatar
Michal Krátký:30.12.2021 20:48

Dobrý den, měl bych prosím dotaz, dodělávám školní projekt na notebooku od applu a nefunguje mi zápis a ukládání textových souborů. Vím, že si apple dává u svých zařízení pozor na to, co se v něm ukládá a stahuje a mohlo by to asi souviset s odepřením nějakého přístupu. Nevíte co s tím prosím?

 
Odpovědět
30.12.2021 20:48
Avatar
Jan Štěch
Člen
Avatar
Jan Štěch:31.8.2022 11:23

Pokud se snažíte vypsat mnohamegabajtový nebo i několikagigabajtový soubor pomocí readfile() a aplikace vám stejně padá kvůli přetečení paměti, není to kvůli readfile(), ale kvůli tomu, že jste si někde zapnuli output buffering. Vyřešíte to poté jednoduše:

$output = ob_get_contents();
ob_end_clean();

readfile('Minecraft.jar'); //Velký soubor

ob_start();
echo $output;
unset($output);
 
Odpovědět
31.8.2022 11:23
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 4 zpráv z 4.