Autor Zpráva
Folker
Profil
Ahoj, mám malý problém, ale jsem z toho už zoufalý. Potřebuji rozdělit obsah textového souboru, což by nebyl takový problém. Ale já potřebuji ty rozdělené části ještě jednou rozdělit na parametry.

Textový soubor obsahuje:
lady_queen|20|T|orange|200 x 140;lay|16|S|class|200 x 80;

Nejprve to potřebuji rozdělit podle znaku ";". aby se uložily do jednotlivých proměnných a potom to potřebuji rozdělit podle znaku"|". Výsledkem by měla být jednotlivá pole např:
$martace[1] = array(lady_queen, 20,T,orange,200 x 140)
$martace[2] = array(lady,16,S,class,200 x 80)


Vše co jsem na netu našel řeší pouze jednoduché rozdělení pomocí funkce list.
Můžete prosím někdo poradit?
Radek9
Profil
Folker:
Explode podle ;, projít pole, explode podle | a uložit do jiného pole.
Folker
Profil
Díky za radu, ale nejsem si jistý, jak to provést. Můžeš být prosím konkrétnější?
Folker
Profil
Načtu soubor:
$otevrit_pro_cteni = fopen("soubory/".$zakaznik.".txt","r");
   $obsah = fread ($otevrit_pro_cteni,1000000);

tady bych to měl rozdělit do jednotlivých částí (polí), ale nevím jak.
A potom toto:
 list ($matrace,$vyska,$tuhost,$potah,$rozmer) = explode ("|",$pole);


Je to správná úvaha?
Kcko
Profil
Folker:

<?php

$f = file_get_contents("test.txt");
$f = rtrim($f, ";");
$arr = explode(";", $f);

$martace = array();
foreach ($arr as $arrItem)
{
    $martace[] = explode("|", $arrItem);
}

print_r($martace);
?>



Edit: Už ano.
Řekl Ti přesně jak to udělat. Příště projev alespoň trošku snahy ...
Folker
Profil
Díky, teď se s tím už nějak poperu.
Folker
Profil
Tak jsem se konečně dopracoval do konečné podoby a výsledek je takový:
$f = file_get_contents("text.txt");
   $f = rtrim($f, ";");
   $vyrobek = explode(";", $f);

   while ($matrace = current($vyrobek)) {
   $klic = key($vyrobek) + 1;
   list ($typ,$vyska,$tuhost,$potah,$rozmer) = explode("|",$matrace);
   ?>
   <p>Matrace <?php echo $klic; ?><br />
   Typ matrace: <?php echo $typ; ?><br />
   Výška matrace: <?php echo $vyska; ?><br />
   Tuhost matrace: <?php echo $tuhost; ?><br />
   Potah matrace: <?php echo $potah; ?><br />
   Rozměr matrace: <?php echo $rozmer; ?><br />
   <?php
   next($vyrobek);
   }


A výstup vypadá takto:
Matrace 1
Typ matrace: lady_carneval
Výška matrace: 24
Tuhost matrace: T
Potah matrace: orange
Rozměr matrace: 200 x 140

Matrace 2
Typ matrace: lady_queen
Výška matrace: 20
Tuhost matrace: T
Potah matrace: class
Rozměr matrace: 200 x 140

Co tomu říkáte?
Kcko
Profil
Celkem nic, jestli to funguje tak v pořádku. Nicméně místo řádku č.5 bych použil novější konstrukci
foreach
Folker
Profil
OK. Snad to také bude někomu hodit.
Díky a čau
Folker
Profil
Přeci jen mám ještě jeden dotaz. Potřebuji ten výsledek odeslat emailem, ale vždycky se mi odešle pouze poslední výpis ciklu while. Je mi jasné proč, ale nevím jak to opravit. Napadá Vás něco?
Nevím jak to udělat, aby se při každém výpisu ciklu while uložil výsledek do proměnné s jiným názvem . Například
$obsah1, $obsah2
a pod.

Poraďte prosím.
panther
Profil
Folker:
$mes = 'zprava na mail';
while (...) {
    $mes .= $obsah1 . $obsah2;
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: