Curs Php-mysql

O functie PHP ce poate fi utilizata pentru a uni liniile din mai multe fisiere, in ordine una dupa alta. Functia (denumita mergeLineFiles() ) returneaza un array cu liniile fisierelor unite; de exemplu, un array ca acesta:
array (
  0 => 'linia_1 din fisier1',
  1 => 'linia_1 din fisier2',
  2 => 'linia_1 din fisier3',
  3 => 'linia_2 din fisier1',
  4 => 'linia_2 din fisier2',
  5 => 'linia_2 din fisier3',
  6 => 'linia_3 din fisier1',
  7 => 'linia_3 din fisier2',
  8 => 'linia_3 din fisier3',
  // si tot asa ...
);
- Cu implode(), si file_put_contents(), liniile pot fi salvate in alt fisier.

Functia mergeLineFiles() primeste 2 argumente: un array cu numele /adresa fisierelor, si numarul de linii care sa fie unite din fiecare fisier. Al doilea argument e optional, daca nu e adaugat (sau e cu valoare 0), functia va uni toate liniile.

Codul functiei mergeLineFiles()

/*
 Unire Linii din mai multe Fisiere, una dupa alta
 De la: https://marplo.net/php-mysql/
 - $files = array cu numele /adresa fisierelor
 - $maxlines = numarul maxim de linii care sa fie unite din fiecare fisier (0 adauga toate liniile)

 Returneaza un array cu liniile unite
*/
function mergeLineFiles($files, $maxlines = 0) {
  $final_lines = array();         // retine liniile unite

  // preia in array-uri liniile fiecarui fisier
  $filesdata = array();
  $nrfiles = count($files);
  $arr_nr_lines = array();         // pt numarul de linii din fiecare fisier
  for($i=0; $i<$nrfiles; $i++) {
    if(file_exists($files[$i])) {
      $filesdata[] = file($files[$i], FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      $arr_nr_lines[] = count(end($filesdata));
    }
  }

  $nrfiles = count($filesdata);        // numarul de array-uri cu linii
  if($nrfiles > 0) {
    $lines = ($maxlines == 0) ? max($arr_nr_lines) : $maxlines;
    for($i=0; $i<$lines; $i++) {
      // parcurge array-urile cu liniile fisierelor
      // adauga in $final_lines prima linie si o sterge
      for($i2=0; $i2<$nrfiles; $i2++) {
        if(isset($filesdata[$i2][0])) $final_lines[] = array_shift($filesdata[$i2]);
      }
    }
  }

  return $final_lines;
}
- Exemplu utilizare, uneste liniile din 3 fisiere si le adauga in alt fisier. Cu functia mergeLineFiles() obtine array-ul cu liniile unite, apoi le salveaza pe server cu file_put_contents():
<?php
/*
 Unire Linii din mai multe Fisiere, una dupa alta
 De la: https://marplo.net/php-mysql/
 - $files = array cu numele /adresa fisierelor
 - $maxlines = numarul maxim de linii care sa fie unite din fiecare fisier (0 adauga toate liniile)

 Returneaza un array cu liniile unite
*/
function mergeLineFiles($files, $maxlines = 0) {
  $final_lines = array();         // retine liniile unite

  // preia in array-uri liniile fiecarui fisier
  $filesdata = array();
  $nrfiles = count($files);
  $arr_nr_lines = array();         // pt numarul de linii din fiecare fisier
  for($i=0; $i<$nrfiles; $i++) {
    if(file_exists($files[$i])) {
      $filesdata[] = file($files[$i], FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      $arr_nr_lines[] = count(end($filesdata));
    }
  }

  $nrfiles = count($filesdata);        // numarul de array-uri cu linii
  if($nrfiles > 0) {
    $lines = ($maxlines == 0) ? max($arr_nr_lines) : $maxlines;
    for($i=0; $i<$lines; $i++) {
      // parcurge array-urile cu liniile fisierelor
      // adauga in $final_lines prima linie si o sterge
      for($i2=0; $i2<$nrfiles; $i2++) {
        if(isset($filesdata[$i2][0])) $final_lines[] = array_shift($filesdata[$i2]);
      }
    }
  }

  return $final_lines;
}

  /* Utilizare mergeLineFiles() */

$files = array('file1.txt', 'file2.txt', 'file3.txt');      // array cu fisiere
$final_file = 'somefile.txt';           // fisierul in care vor fi salvate liniile unite

// apeleaza mergeLineFiles() si retine array-ul cu toate liniile
$final_lines = mergeLineFiles($files);

// Sau, uneste doar primele 4 linii din fiecare fisier
// $final_lines = mergeLineFiles($files, 4);

// salveaza liniile unite in $final_file
if(file_put_contents($final_file, implode(PHP_EOL, $final_lines))) echo 'Date salvate';
else echo 'Nu poate salva datele';
?>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block
.some_class {
  display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveing
I`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendo
Estoy viviendo aquĆ­.
- Traiesc /Locuiesc aici.
Unire Linii din mai multe Fisiere, una dupa alta

Last accessed pages

  1. Animatie elemente HTML cu CSS (3198)
  2. Prezentul continuu - Exercitii si teste incepatori (38397)
  3. Numerale, Numere in limba engleza - Numerals (52515)
  4. Zilele saptamanii, Lunile si Anotimpuri - Exercitii incepatori (10477)
  5. Scoala zeilor (5782)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (968)
  2. Gramatica limbii engleze - Prezentare Generala (630)
  3. Exercitii engleza - English Tests and exercises - Grammar (559)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (457)
  5. Coduri pt culori (367)