Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: php a práce se soubory/ukazatelem + dobrá reference + zaokrouhlení [vyřešeno]  (Přečteno 10946 krát)

honorguard

  • Host
Zdravím,
potřebuji pomoct

1) Neznáte někdo odkaz na nějakou dobrou referenční příručku ohledně php? Bylo by super kdyby byla třeba v odt nebo v něčem dejchatelnym co bych si převedl. Hlavně aby šla stáhnout a šlo v ní vyhledávat (tudíž nebyla PDF). Může být klidně anglicky. Hlavně potřebuji aby tam byly funkce a jejich dokumentace.

2) Mám 3 soubory a v každém je jedno číslo. Nevím jak jsou ty čísla dlouhá. Pro rychlost a lepší využití by bylo lepší hodit všechna tyhle čísla do jednoho souboru třeba každé na jiný řádek, ale práci s ukazatelem absolutně neovládám. Jediné co znám je příkaz rewind :D. Nevíte někdo jak na to?

3) Potřeboval bych nějak uříznout číslo aby bylo celé + 2 desetiná místa (čili zaokrouhlit) Jak na to?

Předpokládám že všechny tyhle problémy by vyřešila právě nějaká dobrá referenční příručka.

Předem moc dík
« Poslední změna: 12 Května 2008, 08:03:28 od honorguard »

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
Re: php a práce se soubory/ukazatelem + dobrá reference + zaokrouhlení
« Odpověď #1 kdy: 12 Května 2008, 07:34:51 »
ad 1)
jeste me nezklamal google, kdyz neco nevim... ale jinak mam knizku Programujeme PHP profesionalne, ta je hodne obsahla :)

ad 2)
Kód: [Vybrat]
<?php
$data 
File ("data.txt");
for (
$i 0$i Count ($data); $i++) echo "$data[$i]<br>";
?>

EDIT: pokud to neni z prikladu patrne, tak funkce File nacte soubor do pole - kazdy radek odpovida jedne bunce :)

ad 3)
Kód: [Vybrat]
echo round(1.8765, 2); // 1.88druhy, nepovinny, parametr udava pocet desetinnych mist po zaokrouhleni
« Poslední změna: 12 Května 2008, 07:36:51 od ufaak »
notebook MSI EX720X, Ubuntu 10.10

honorguard

  • Host
Re: php a práce se soubory/ukazatelem + dobrá reference + zaokrouhlení
« Odpověď #2 kdy: 12 Května 2008, 08:02:56 »
Díky Ufáku chápu.
Moc jsi mi pomohl :)

o5

  • Host
Re: php a práce se soubory/ukazatelem + dobrá reference + zaokrouhlení
« Odpověď #3 kdy: 13 Května 2008, 22:51:23 »
ad 1)
..ale jinak mam knizku Programujeme PHP profesionalne, ta je hodne obsahla :)
[noflame]..z roku 2001. Je tam neco uzitecneho, co by jsi mohl pouzit dnes?  :) [/noflame]

honorguard

  • Host
Hele, pls ještě jedna věc... Když třeba potřebuju ten soubor změnit... šlo by to tak že bych změnil obsah toho pole a potom to pole zase uložil do souboru? Jak na to?
Really Thanks :)

ubuntu luky

  • Host
Re: php a práce se soubory/ukazatelem + dobrá reference + zaokrouhlení
« Odpověď #5 kdy: 14 Května 2008, 00:15:40 »
[noflame]..z roku 2001. Je tam neco uzitecneho, co by jsi mohl pouzit dnes?  :) [/noflame]

proc by nebylo? mas pocit ze se cely jazyk php zmenil? php prece stoji na stejnych konstrukcich ktere porad fungujou, syntaxe atd

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
ad 1)
..ale jinak mam knizku Programujeme PHP profesionalne, ta je hodne obsahla :)
[noflame]..z roku 2001. Je tam neco uzitecneho, co by jsi mohl pouzit dnes?  :) [/noflame]

no v knize popisuji PHP4, ale nemyslim si, ze by byla zastarala... podle me zkusenosti vetsina serveru PHP5 ani nenabizi...
notebook MSI EX720X, Ubuntu 10.10

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
Hele, pls ještě jedna věc... Když třeba potřebuju ten soubor změnit... šlo by to tak že bych změnil obsah toho pole a potom to pole zase uložil do souboru? Jak na to?
Really Thanks :)

slo by to :)

Kód: [Vybrat]
<?
if (!$soubor=fopen("data.txt", "r+")) {
   echo ("Nelze otevřít soubor");
} else {
$data = file("data.txt");
$vysledna_data = zpracovani_dat($data);
for ($i=0; $i<count($vysledna_data); $i++)  {
  fputs($soubor, $vysledna_data[$i]);
}
}
?>
notebook MSI EX720X, Ubuntu 10.10

o5

  • Host
no v knize popisuji PHP4, ale nemyslim si, ze by byla zastarala... podle me zkusenosti vetsina serveru PHP5 ani nenabizi...
To mas malo zkusenosti, ale ja sam jich vlastne moc nemam :) . Ne myslim ze na vetsine solidnich hostinzich PHP5 je. Nebylo to mozna ode me fer, ale proste rad vyuzivam nove technologie (fce), tak proto prosazuji PHP5. Spis si myslim, ze jestli si nekdo dnes hodla koupit nejakou zajimavou knihu, tak by mel sahnout po necem cerstvejsim.

Ale jak jsem psal, noflame jen IMO :)

Chceme mir :)

ubuntu luky

  • Host

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
mir s tebou
notebook MSI EX720X, Ubuntu 10.10

honorguard

  • Host
Opět Děkuji Ufaakovi za pomoc :).

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
Opět Děkuji Ufaakovi za pomoc :).

za nic ;)
notebook MSI EX720X, Ubuntu 10.10

honorguard

  • Host
ani ne... kdyby jsi jen věděl kolik jsi mi ušetřil na serveru souborů a procesů a jak jsi to celé urychlil a zkrátil zdroják :D.

honorguard

  • Host
Tak mám další problém.
http://img4.net/public/pview/15014/snímek84.png
Tenhle problém jsem sledoval již kdysi dávno když jsem s php začínal, ale potom jsem dlouho nepotřeboval soubory a ty původní projekty fungovaly tak jsem to neřešil. nejspíš by fungoval i tenhle. Jde o to že bych byl rád kdybych to měl v pořádku. Tahle chyba se (alepoň podle mého) týká přístupových práv, což je věc o které jsem se dověděl až na Linuxu. Když jsem na Windows začínal s php, tak jsem jen matně tušil k čemu to je a uměl jsem to v TC změni :D. Jedná se o počítadlo návštěvnosti. Radši si vedu vlastní, protože mi to umožňuje počítat i návštěvnost jednotlivých článků bez velké složitosti a můžu jednoduše provádět statistické výpočty apod.

Celá složka je ve vlastnictví uživatele www-data a skupiny www-data. Stejně tak každý soubor v této složce (ručně jsem je přeprávoval). Vlastník má práva RWX a skupina a ostatní má práva pouze R.

Může mě prosím někdo popostrčit, abych věděl kde dělám chybu? Předem dík.

zdroják skriptu:
http://www.edisk.cz/stahnout-soubor/16087/navstevnost.php_2.33KB.html

donny

  • Závislák
  • ***
  • Příspěvků: 1861
ja mam webovy root v ~/www a prava:

drwxrwxr-x  7 donny html       4096 21. kvě 21.15 www
|  (html je skupina, kterou jsem vytvoril specialne pro tyto potreby)
|  a v ni:
|-- drwxr-xr-x  7 donny users 4096 29. bře 15.57 projekt1
|  respektive
|-- -rw-r--r--  1 donny users   79 30. bře 14.07 temp.php
« Poslední změna: 21 Května 2008, 23:21:03 od Michal Donát »
archlinux @ i7-6700/GTX1080 8G/32G DDR4/.5TB NVMe/WD RED 3TB | Raspbian 8 @ Raspberry Pi
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better!

honorguard

  • Host
Tak problém byl vyřešen.
Nakonec jsem zjistil že složka kam zapisují skritpy má práva pro skupinu www-data jen r-x, takže tam nešlo zapisovat. Všem díky za pomoc.

honorguard

  • Host
Ahoj Uffáku,
mám problém s tím příkazem fputs. Problém je že všechno ukládá na jeden řádek. cca takhle:

původní obsah souboru:

80.00
80.00
80.00

po přepsání všech řádků např. hodnotami 40.00
40404000.00
80.00

Tady je kód co to ukládá. Nevší prosím co jsem udělal špatně?
Kód: [Vybrat]
$soubor = fopen('open/vnimani.txt', 'r+');
   
   
    $navrat[0] = $first_procenta_prumer;
    $navrat[1] = $first_real_prumer;
    $navrat[2] = $second_procenta_prumer;
    $navrat[3] = $second_real_prumer;
   
    for($i = 0; $i<4; $i++) {
      fputs($soubor, $navrat[$i]);
    }

Moc díky

donny

  • Závislák
  • ***
  • Příspěvků: 1861
Kód: [Vybrat]
$soubor = fopen('open/vnimani.txt', 'r+');
   
   
    $navrat[0] = $first_procenta_prumer;
    $navrat[1] = $first_real_prumer;
    $navrat[2] = $second_procenta_prumer;
    $navrat[3] = $second_real_prumer;
   
    for($i = 0; $i<4; $i++) {
      fputs($soubor, $navrat[$i]."\n");
    }
archlinux @ i7-6700/GTX1080 8G/32G DDR4/.5TB NVMe/WD RED 3TB | Raspbian 8 @ Raspberry Pi
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better!

honorguard

  • Host
Tak všem děkuji, Donnyho návod funguje. Jen by mě zajímalo, jaký je rozdíl mezi fputs a fwrite? Mají stejné paramtery, oba dva používají stejný typ handle... Nemůžu tomu přijít na kloub. Leda že by fputs psalo od začátku souboru a fwrite od posledního místa ukazatele...

donny

  • Závislák
  • ***
  • Příspěvků: 1861
fputs je alias pro fwrite, tyto funkce jsou tedy naprosto totozne (resp. jedna a ta sama, akorat ma dva nazvy)
archlinux @ i7-6700/GTX1080 8G/32G DDR4/.5TB NVMe/WD RED 3TB | Raspbian 8 @ Raspberry Pi
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better!

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
jj, je to presne tak :)

najdes to i ve spefikaci php :)
notebook MSI EX720X, Ubuntu 10.10

honorguard

  • Host
Bože a nevíte teda někdo k čemu je to dobrý?

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
vim to naprosto presne... aby te to zmatlo ;D
notebook MSI EX720X, Ubuntu 10.10

 

Provoz zaštiťuje spolek OpenAlt.