Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Ce e aratarea asta ?

Probleme timonerie schimbator sau...

Numar strada gresit in contractul...

Centrala Ariston Cares Premium 24...
 La multi ani @Klasse!

La multi ani @shmecherul!

pareri ipad 6-2018- flip

Cum au aparut supermarketurile in...
 Campanii mincinoase Carrefour

Tv toshiba defect

touchscreen navigatie stricat

bonsai - de unde?
 Resetare Bonus Malus

Unitatea optica DVD-rw absenta pe...

Problema configurare Wireguard

Dozatoare de apa, cu alimentare d...
 

functie indexare, putin ajutor va rog

- - - - -
  • Please log in to reply
20 replies to this topic

#1
webulxpert

webulxpert

    Senior Member

  • Grup: Senior Members
  • Posts: 2,065
  • Înscris: 28.09.2006
am functia:
<?php
error_reporting(55);
$folder = opendir('../www'); // folderul care este indexat
function indexare($fol) {
	  while(($fisier =readdir($fol)) == true) {
	 if (is_dir($fisier)) {
	 echo 'este dir</br>';
	 if ($folder_2<1) /*folosesc asta pentru a nu indexa primle 2 foldere care pe localhost sunt "." si ".." */ {$folder_2++; } else { indexare($fisier);}
	 } else
	 {
	echo 'fisier '.$fisier.'</br>';
	}
	} }
	indexare($folder);
?>

imi afiseaza eroarea : Warning: readdir(): supplied argument is not a valid Directory resource in E:\localhost\www\indexare.php on line 5 cand indeplineste else { indexare($fisier);, nu imi dau seama cum trebuie sa fie calea cater director ca sa functioneze scriptul.

scriptul are drept scop indexarea tuturor fisierelor dintr-un un director.

#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
$folder_2 este neinitializat si capata valoarea implicita NULL care e mai mica decat 1 (NULL < 1). Nu asa se face oricum. Pur si simplu iterezi si compari numele fisierului curent cu '.' si '..'.

Edited by OriginalCopy, 08 September 2008 - 21:50.


#3
webulxpert

webulxpert

    Senior Member

  • Grup: Senior Members
  • Posts: 2,065
  • Înscris: 28.09.2006
if (!$fisier='.' or $fisier='..') { indexare($fisier);} - am facut asa acesta linie. cum fac cu functia indexare care trebuie sa se execute in acesta linie insa nu gaseste directorul continu in $file?

#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postwebulxpert, on Sep 8 2008, 22:19, said:

if (!$fisier='.' or $fisier='..') { indexare($fisier);} - am facut asa acesta linie. cum fac cu functia indexare care trebuie sa se execute in acesta linie insa nu gaseste directorul continu in $file?

=?

Edited by OriginalCopy, 08 September 2008 - 22:40.


#5
webulxpert

webulxpert

    Senior Member

  • Grup: Senior Members
  • Posts: 2,065
  • Înscris: 28.09.2006
cum fac sa nu mai primesc eroarea : Warning: readdir(): supplied argument is not a valid Directory resource in E:\localhost\www\indexare.php on line 5 ?

#6
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Corecteaza aberatia asta logica: !$fisier='.' or $fisier='..'

#7
The@ngel

The@ngel

    Active Member

  • Grup: Members
  • Posts: 1,225
  • Înscris: 07.08.2003

View PostOriginalCopy, on Sep 9 2008, 00:00, said:

Corecteaza aberatia asta logica: !$fisier='.' or $fisier='..'
Adica in loc de
if (!$fisier='.' or $fisier='..') { indexare($fisier);}
trebuie sa scrii"
if (!$fisier=='.' or $fisier=='..') { indexare($fisier);}
Sorry OriginalCopy ca m-am bagat, dar se pare ca din apropouri nu s-a prins.

#8
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostThe@ngel, on Sep 9 2008, 09:53, said:

Adica in loc de
if (!$fisier='.' or $fisier='..') { indexare($fisier);}
trebuie sa scrii"
if (!$fisier=='.' or $fisier=='..') { indexare($fisier);}
Sorry OriginalCopy ca m-am bagat, dar se pare ca din apropouri nu s-a prins.
Nu e problema asta, ci faptul ca astfel de personaje se prezinta ca "programatori PHP", ceea ce e un lucru trist. Si mai trista e ignoranta.

	 1	<?php
	 2	function get_fstree_recursive($target) {
	 3		$cwd = opendir($target);
	 4		$r = array();
	 5		if($cwd) {
	 6			while($rel_path = readdir($cwd)) {
	 7				if('.' == $rel_path || '..' == $rel_path) {
	 8					continue;
	 9				}
	10				if(is_dir($rel_path)) {
	11					$r[$rel_path] = get_fstree_recursive($target.DIRECTORY_SEPARATOR.$rel_path);
	12				}
	13				elseif(is_file($rel_path)) {
	14					$r[] = $rel_path;
	15				}
	16			}
	17		}
	18		return $r;
	19	}
	20	
	21	var_dump(get_fstree_recursive('.'));
	22	
	23	?>
	24

@webulxpert: Ar trebui macar din bun simt sa pui pe site-ul ala pe care iei bani ca il "faci": "Site creat de webulxpert si Softpedia Forum", cu link catre aceasta arie.
Codul are un mic bug care e usor de reparat de indata ce intelegi ce se intampla, plus inca un bug in care e vorba mai mult de nuanta :)

Edited by OriginalCopy, 09 September 2008 - 11:30.


#9
webulxpert

webulxpert

    Senior Member

  • Grup: Senior Members
  • Posts: 2,065
  • Înscris: 28.09.2006
nu fac site,pur si simplu invat. si la urma (daca imi va iesi ceea ce vreau sa fac),am sa public scriptul si aici.

vezi sekingsoft.com ca sa intelegi ce vreau sa fac.

Edited by webulxpert, 09 September 2008 - 12:57.


#10
webulxpert

webulxpert

    Senior Member

  • Grup: Senior Members
  • Posts: 2,065
  • Înscris: 28.09.2006
cum pot sa fac ca atunci cand cineva da clik pe <a href="./$fisier">$fisier </a> iar $fisier e folder  sa afiseze continutul folderului fara ca sa am index.php in folderul afisat sau alt fisier .php in acel folder?


asa merge:
<?php
error_reporting(55);
$folder = opendir('../www'); // folderul care este indexat

function indexare($fol) {
	  while(($fisier =readdir($fol)) == true) {
	 if (is_dir($fisier)) {
	 if ($fisier=='.' || $fisier=='..') {continue;}  { echo "->>"; $fisier_2=opendir('../www'.DIRECTORY_SEPARATOR.$fisier); indexare($fisier_2); }
	 } else
	 {
	echo 'fisier '.$fisier.'</br>';
	}
	} }
	indexare($folder);
?>

ce trebuie sa inlocuiesc in loc de (opendir('../www'.DIRECTORY_SEPARATOR.$fisier); indexare($fisier_2);) ../www sa fie $fol ? asa nu merge - > opendir($fol.DIRECTORY_SEPARATOR.$fisier); indexare($fisier_2);

2. dupa ce a idexat primul director cum fac sa se duca in cu un director in urma si sa indexeze mai departe? ex:

folder_1
folder_2

dupa ce a idexat folder_1 sa revina si sa indexeze folder_2?

Edited by webulxpert, 09 September 2008 - 13:49.


#11
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
mod_rewrite. intreaba pe "technical area" din "webmaster corner"

#12
webulxpert

webulxpert

    Senior Member

  • Grup: Senior Members
  • Posts: 2,065
  • Înscris: 28.09.2006
cred ca se poate face fara a implica si apache

#13
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postwebulxpert, on Sep 9 2008, 14:38, said:

cred ca se poate face fara a implica si apache
daca tu zici ...

#14
urban

urban

    Active Member

  • Grup: Members
  • Posts: 1,622
  • Înscris: 25.07.2002
if !(substr($fisier, -4) == '.php') {
echo 'fisier '.$fisier.'</br>';
}

Edited by urban, 09 September 2008 - 15:06.


#15
webulxpert

webulxpert

    Senior Member

  • Grup: Senior Members
  • Posts: 2,065
  • Înscris: 28.09.2006
multumesc urban, e necesara pentru securitate. ma intereseaza cum pot sa ma intorc inapoi pentru a idexa urmatorul director?

cum pot sa fac ca dintr-un fisier index.php situat in www care odata executat arata link catre toate fisierele existente in www, cand userul da clik pe www/ggg sa afiseze toate fisierele contiunute in acel director fara sa fie un fisier .php in www/ggg ?

#16
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postwebulxpert, on Sep 9 2008, 15:10, said:

multumesc urban, e necesara pentru securitate. ma intereseaza cum pot sa ma intorc inapoi pentru a idexa urmatorul director?

cum pot sa fac ca dintr-un fisier index.php situat in www care odata executat arata link catre toate fisierele existente in www, cand userul da clik pe www/ggg sa afiseze toate fisierele contiunute in acel director fara sa fie un fisier .php in www/ggg ?
Generezi toate link-urile catre index.php-ul principal, din www, si preiei mereu un parametru 'relpath' din $_GET[].

Despre $_GET poti citi in manual.

insa link-urile vor arata asa: /index.php?relpath=aaa/bbb/ si nu /aaa/bbb/ cum intrebai tu. Asta nu se poate decat cu mod_rewrite, dupa cum spuneam.

#17
urban

urban

    Active Member

  • Grup: Members
  • Posts: 1,622
  • Înscris: 25.07.2002
Pai tu vrei ca fisierul index.php din fiecare folder sa-ti faca procesarea doar in folderul curent? Fa cum a zis OriginalCopy .. trimite calea ca parametru catre fisierul index.php si acea cale o procesezi. Daca nu trimiti nici un parametru atunci ar trebui sa ia folderul curent.

In ceea ce priveste intrebarea:

Quote

ma intereseaza cum pot sa ma intorc inapoi pentru a idexa urmatorul director?

Nu ar trebui sa te intereseze atata vreme cat ai o conditie de iesire din procedura recursiva iar daca la primul apel al procedurii ai un while care iti proceseaza toate folderele din calea curenta si la fiecare folder se apeleaza din nou procedura dar avand ca parametru noua cale atunci totul se va petrece normal iar recursivitatea va avea grija sa parcurga toata ierarhia de foldere incepand cu calea initiala.
Am eu un feeling ca ai copiat functia aia de undeva fara sa intelegi ce face de fapt.

Edited by urban, 09 September 2008 - 15:22.


#18
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Posturban, on Sep 9 2008, 15:21, said:

Am eu un feeling ca ai copiat functia aia de undeva fara sa intelegi ce face de fapt.
(off-topic, legat de alt thread) asa mai fac webmasterii si se mira, atunci cand ajung din intamplare pe undeva sub "programming", de ce aici ar fi doar "incepatori", cand ei defapt fac lucruri grele ca SEO (de exemplu). Eu sa zicem n-as putea face SEO asa de usor. Insa ma rog, unii nu inteleg ca sunt doar domenii tangentiale.

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate