IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 2. diel - Práca s textovými súbormi v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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>');

}
}
?>
 
Odpovedať
24.1.2021 18:41
Avatar
David Ryba
Člen
Avatar
Odpovedá 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

Editované 26.1.2021 8:25
 
Odpovedať
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?

 
Odpovedať
30.12.2021 20:48
Avatar
Jan Štěch
Tvůrce
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);
 
Odpovedať
31.8.2022 11:23
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!