Autor Zpráva
Brubas
Profil *
Zdravím,
mám kod:
<?php
$nahoda = array("include_once('pocitadlo/impuls.txt');",
"include_once('pocitadlo/evropa2.txt');",
"include_once('pocitadlo/frekvence1.txt');",
"include_once('pocitadlo/bonton.txt');",
"include_once('pocitadlo/countryradio.txt');",
"include_once('pocitadlo/radiobeat.txt');");
rsort($nahoda);
foreach ($nahoda as $key => $val) {
echo "<tr><td>$key.</td><td>$val</td></tr><br />";
}
?>

který by měl vypsat obsah souborů a seřadit obsahy podle velikosti.. To se stane ,ale nevypíše se obsah souborů jen tohle:
0.	include_once('pocitadlo/radiobeat.txt');
1.	include_once('pocitadlo/impuls.txt');
2.	include_once('pocitadlo/frekvence1.txt');
3.	include_once('pocitadlo/evropa2.txt');
4.	include_once('pocitadlo/countryradio.txt');
5.	include_once('pocitadlo/bonton.txt');

Děkuji předem za opravení mého kodu. Už jsem zkusil všechno možné s ", ' (,), ; i , ,ale prostě furt nic nefunguje jak by mělo...
Jan
Profil *
No já bych v tom poli nechal jenom ty názvy souborů a místo include_once bych pouzil file_get_contents()
Str4wberry
Profil
Jak píše Jan, máš v tom poli obyčejné řetězce. Stačí odstranit ty dvojité uvozovky a „include_once“ vyměnit za „file_get_contents“.
valecekm
Profil
Tak nejak proste tak ;-)...
<?php
$nahoda = array('pocitadlo/impuls.txt',
'pocitadlo/evropa2.txt',
'pocitadlo/frekvence1.txt',
'pocitadlo/bonton.txt',
'pocitadlo/countryradio.txt',
'pocitadlo/radiobeat.txt');

rsort($nahoda);
foreach ($nahoda as $key => $val) {
echo "<tr><td>$key.</td><td>".file_get_contents($val)."</td></tr><br />";
}
?>

Chlapi, rychlejsi by to bylo napsat nez to vysvetlovat. Doufam, ze se na mne moderator nenastve, ale pokud nekdo udela neco takovyho jako include jako obycejnej text, tak nevim jestli by to slozil dohromady tak jak by to melo byt. ;-)
Brubas
Profil *
Děkuji všem, hlavně valecekm už to valí :)
Brubas
Profil *
Ještě pokud se můžu zeptat jak do toho zapojit funkci že se bude vypisovat pouze 10 souborů s největším obsahem?
Brubas
Profil *
A ještě jeden problém který jsem zjistil až teď čísla se neřadí od největšího k nejmenšímu což je pro mě dost velký problém.
valecekm
Profil
Brubas:
v tech textakach mas napsany co? jen cisla? nebo myslis jako podle velikosti co jako zabiraji na disku??
valecekm
Profil
Brubas:
Tady mas kompletni skript. Nevim jestli to co jsem spachal melo byt ucelem, ale zjednodusene otevrel sem danej soubor(predpokladam, ze jde o radia a nejake pocitadlo pristupu ci posluchacu), precetl hodnotu(cislo) a proste uz nejak zaridil aby se nazev souboru(radia) vypsal v tom zpravnym poradi od nejposlouchanejsimu(napr.) k nejmene poslouchanemu. Jediny co te ted bude asi zajimat je nastaveni kolik souboru se ma vypsat a slozka se soubory, ktere se budou otevirat. Jinak mozna jeste podporovane typy soubory pokud by jsi mel neco jineho nez .txt, tak to jde pridat do pole podporovanych pripon. Vpodstate do dane slozky nasypes jen textaky s tema cislama a hotovo ;-).

Tak tu to mas:
<?php
// cesta k souborum (slozka)
$cesta = "pocitadlo"; 
// kolik prvnich souboru se ma vypsat
(int)$pocet = 10;
#========================================
$slozka = dir($cesta); 
// pripravene pole pro soubory
$pole_radio = array();
$pole_cislo = array();
// pole podporovanych pripon souboru
$pole_pripon=array('txt');
#========================================
# CYKLUS -> projde povolene soubory v dane slozce a provede dalsi operace
while($soubor=$slozka->read()) /* precte soubory ve slozce */{
  if ($soubor=="." || $soubor=="..") continue; // vylouci stejny a nadrazeny adresar 
$soubor_n = explode(".",  $soubor); // rozdeli priponu a nazev souboru do pole
$pripona = $soubor_n[1]; // pripona souboru
$i=1;
    foreach($pole_pripon as $pripona_z) // prohledani pole pripon
    { 
// kontrola souboru jestli je soubor povoleny typ souboru (podle pripony), pokud ano pokracuj
if ($pripona==$pripona_z){
    $obsah=file_get_contents($cesta."/".$soubor);   
    $pole_radio[] = $soubor_n[0]; $pole_cislo[] = $obsah; /* ulozi obsah 
souboru(cislo) a nazev souboru(radio) do predem vytvorenych poli */
}}} 
// prohodi hodnoty a indexi v poli
$pole_cislo2 = array_flip($pole_cislo);
// seradi pole podle prehozenych hodnot(obs.soub.)
 krsort($pole_cislo2);
// prohleda obe dve pole a priradi nazev radia k danemu zjistenemu cislu
foreach ($pole_cislo2 as $key => $val) {	
  foreach ($pole_radio as $key_r => $val_r) {
 if($val==$key_r and $i<=$pocet){// kontrola
// VYPIS
echo "<tr><td>".$i.".) </td><td>".$val_r.": ".$key."</td></tr><br />";
$i++;
}}}
?>

Vypise napriklad:
1.) evropa2: 720845452
2.) impuls: 345452
atd....

No snad jsem se trefil do toho co jsi potreboval. Nekteri asi budou namitat, proc je to tak ohavne slozite, ale proc to delat jednoduse, kdyz to jde slozite, ze ;-).
pozn.: S ostatnima souborama v dane slozce pocitadlo, ktere nejsou .txt nebo prose neodpovidaj typu souborum podle pripon v danem poli, tak se s nema nic dit nebude a budou ignorovany.
Brubas
Profil *
Tak to je úplně výborný :) Určitě sis s tim dal hodně velkou práci a moc ti za to děkuju vše funguje bez problémů.. Ještě jednou díky
Brubas
Profil *
Já vím že toho chci moc ,ale ještě bych potřeboval něco aby to převedlo název např. countryradio na Country Radio a to by bylo v jiné proměné ,protože countryradio mám na odkaz
valecekm
Profil
Brubas:
No, tak stema nazvama to bude dost velkej problem. Musis si uvedomit, ze aplikace nema mozek(bezna aplikace) a nedokaze z nazvu countryradio udelat logicky Country Radio sama o sobe. Slo by to, ale byla by to zase dalsi tuna skriptu. Zjednodusene receno v nazvu souboru by jsi vyhledal jestli je tam hledanej retezec ...radio... a nejprve vypsal prvni cast po to radio(ale bez nej) a pak az radio(od konce country,prvniho nazvu). Fc
strpos
,
strlen
,
strstr
,
substr
atd ;-). Zkus si pohrat. Mozna tomu prijdes na chut. Ja tomu prisel tak na chut, ze jsem si udelal API, ktera te dokaze pozdravit krestnim jmenem kdyz ji napises cele i s prijmenim a nebo ti ho vysklonuje pokud ho nezna. A to na zaklade deni doby jeste k tomu :-). Vetsinou prave pres tyhlencty funkce ;-)....Kdo si hraje nezlobi ;-).
Brubas
Profil *
nemyslel jsem to takhle složitě, mě by bohatě stačilo kdybych do scriptu napsal rovnou na co se to má převést
valecekm
Profil
Brubas:
No a prave oto jde. O tu dalsi splet promennejch a funkci. Proste musis si ty nazvy skontrolovat, vyhledat v nich dva ruzny retezce, odelit a nejdriv vypsat prvni a pak druhej. Velky zacatecni pismeno slova udelas uz trebas pres css aby jsi to nemusel zase delat pres funkce v PHP(slo by to). Nemuzes tam k tem souborum natvrdo narvat jejich nazvy. Sice vim ze to budes pouzivat asi jen ty a mohl by jsi si tam udelat podminky, ze kdyz to bude nazev countryradio, tak se tam napise natvrdo Country Radio atd.. ale uvedom si, ze kdyz by tam bylo uz jen par desitek souboru, tak rucne tam psat tolik podminek nebo dalsi natvrdo napsane veci nema smysl. Vsechno musi jit dynamicky. Takhle se to proste resit neda pro pouzitelnost do budoucna. Musis sam, ja uz na to nemam hlavu abych ti pravdu rekl po vcerejsku ;-D. Jestli bude nekdo ochotnej ten skript timto vylepsit, tak jen s chuti do toho. Doufam ze se na mne za tohle nebudes zlobit. Clovek by mel byt vzdy jen popostrcenej a dal uz to zkusit sam. ;-)
Brubas
Profil *
Máš pravdu, až toho bude víc je blbost furt něco přidávat do scriptu. Proto prosím nějakého trpělivého člověka jestli by script o tuto funkci neobohatil
valecekm
Profil
Brubas:
Jestli by se nekdo nenasel, tak bych se ti na to mrknul a neco bych spachal. Ale jako bude to uz takova mela, ze nevim jestli ti to mam pak napsat sem. Bud zitra nebo v pondeli nevim jak to stihnu. Ale v tomto pripade bych spis uz vyuzil databazi a statistiku pocital tam. Ale skusim to i takto pres soubory.
Brubas
Profil *
Pokuď bys byl tak hodný tak zda-li bys to moh rovnou udělat na databázi ,protože už mi to přes ty soubory taky připadá moc komplikované, udělám si počítání přístupů do databáze
valecekm
Profil
Brubas:
Pozde, uz to mam pres soubory :-D. No s databazi to uz musis sam. Snad se s tema nazvama realnych radii v poli neztratis. Musis si uvedomit, kdyz tam do toho pole budes davat ty nazvy, tak nenejaky Rebel Rádio Brod a ja nevim co, stim uz by byl problem, protoze by jsi to pole musel poskladat tak, aby pri vyhledavani ti ty nazvy sedly, kdyz by se tim polem prochazelo, aby jsi nenasel trebas prvni u stanice Rádio DJ nenasel nejdriv DJ a pak radio. Coz to by melo byt opacne ze. Je to takto velmi komplikovane. Spis bych napsal nejakej system, spojenej s databazi a tam bych pokud bych chtel pridat dalsi radio ho proste pridal do tabulky, kde by byl uvedenej klasickej nazev toho radia a pak by u neho byl i kolik ho posloucha posluchacu(nebo to cislo proste). Pak bys to jen vypsal v serazeni podle tech hodnot cisel a bylo by to. Ale ukazka, ze to jde i pres soubory ;-). PHP neni blbej prog. jazyk, ale v techto pripadech se bez Databaze proste neobejde. Ono se uz vetsiny i jinejch prog. jazyku bez DB u vetsich projektu take neobejde. Databaze je v techto projektech uz zaklad a bez ni je to dosti tezky.

Tomuto se rika HUMUS: :-D
<?php
// pole nazvu radii
$pole_real_radii = array(
'Beat','Bonton',
'Classic','Club',
'Kiss','Evropa2',
'Impuls','atd...',
// vzdy nakonci
'FM','Radio'
);
#========================================
// cesta k souborum (slozka)
$cesta = "pocitadlo"; 
// kolik prvnich souboru se ma vypsat
(int)$pocet = 10;
#========================================
$slozka = dir($cesta); 
// pripravene pole pro soubory
$pole_radio = array();
$pole_cislo = array();
// pole podporovanych pripon souboru
$pole_pripon=array('txt');
// pripravene pole pro ukladani rozdeleneho nazvu
$pole_realnazev_radio = array();
#========================================
# CYKLUS -> projde povolene soubory v dane slozce a provede dalsi operace
while($soubor=$slozka->read()) /* precte soubory ve slozce */{
  if ($soubor=="." || $soubor=="..") continue; // vylouci stejny a nadrazeny adresar 
$soubor_n = explode(".",  $soubor); // rozdeli priponu a nazev souboru do pole
$pripona = $soubor_n[1]; // pripona souboru
$i=1;
#========================================
    foreach($pole_pripon as $pripona_z){// prohledani pole pripon    
// kontrola souboru jestli je soubor povoleny typ souboru (podle pripony), pokud ano pokracuj
if ($pripona==$pripona_z){
 // otevre a precte obsah souboru
	$obsah=file_get_contents($cesta."/".$soubor);
 // ulozi obsah souboru do pole
	$pole_cislo[] = $obsah; 
#========================================
// prohleda nazev soub a vytvori real. nazev radia	
	foreach($pole_real_radii as $hledej_rad){
	if(strstr($soubor_n[0], strtolower($hledej_rad))==true){$pole_realnazev_radio[]=$hledej_rad;}
}
#========================================
 // spoji nelezene casti nazvu radia
 $spoj_nazev = implode(" ",$pole_realnazev_radio);
// ulozi realny nazev radia do  pole	
	$pole_radio[] = $spoj_nazev;
#========================================
/*smaze predesle nalezene realne nazvy radii
a uvolni tak misto pro dalsi hledani nazvu*/
$count_smaz_pol = count($pole_realnazev_radio);
for($j=1;$j<=$count_smaz_pol;$j++){array_pop($pole_realnazev_radio);}
}}} 
#========================================
// prohodi hodnoty a indexi v poli
$pole_cislo2 = array_flip($pole_cislo);
// seradi pole podle prehozenych hodnot(obs.soub.)
 krsort($pole_cislo2);
// prohleda obe dve pole a priradi nazev radia k danemu zjistenemu cislu
foreach ($pole_cislo2 as $key => $val) {	
  foreach ($pole_radio as $key_r => $val_r) {
 if($val==$key_r and $i<=$pocet){// kontrola
// VYPIS
echo "<tr><td>".$i.".) </td><td>".$val_r.": ".$key."</td></tr><br />";
$i++;
}}}
?>
valecekm
Profil
Na ty jednoduchy nazvy radii to bude stacit. Kdyz radio bude vzdy posledni slovo trebas:

soubor-> danceradio.txt
nazev pri vypisu bude-> Dance Radio
Samozrejmne to Dance si budes muset pridat do pole ;-). Pokud tam slovo radio vubec nebude tim lip :-D.

soubor-> evropa2.txt
nazev pri vypisu bude-> Evropa2

pozn.: To pole realnejch nazvu souboru by slo mozna prakticky vytvorit i z tech nazvu
$pole_real_radii
, takze by jsi to pole nemusel ani tvorit, ale to uz psat nebudu, nebo by me z toho slezly vlasy asi ;-D :-). Zkus to radej s db. ;-)


Ale musim podekovat i ja tobe ;-). Troska sem si zase osvezil pamet a prohnal informace mozkovejma zavitama. Takze taky dik ;-).
Brubas
Profil *
To je přesně ono musim ti moc poděkovat... Já vím, furt chci něco jiného ,ale kdybys měl někdy čas (klidně za týden) tak jestli bys to mohl udělat na databázi. Nebo klidně někdo jiný kdo by byl tak ochotný jako valecekm :-)
Brubas
Profil *
pomůýe mi prosím někdo?
valecekm
Profil
Brubas:
Jestli my vyjde cas, tak ti to dneska zpacham ;-). Popripade pristi tejden jestli to jeste nemas.
Brubas
Profil *
Tak pořád ještě nic nemam...
Brubas
Profil *
pomůže mi někdo?
fuckin
Profil
Brubas:
Za tuto dlouhou dobu ses mohl v php a mysql zdokonalit a upravit si to sám. Řeknu ti to narovinu, tvůj problém je příliš komplexní a tvůj dotaz strašně obecný.

Zeptej se konkrétně, ne něco ve stylu upravte mi tohle aby to jelo tak a tak. Od toho je tu jiná sekce.

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: