Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
redalert19882000
Δημοσιεύσεις: 31
Εγγραφή: 15 Ιούλ 2007 21:39

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από redalert19882000 » 04 Δεκ 2008 23:21

Καλησπέρα,

φιάχνω ένα php scriptaki και έχω κολήσει σε κάτι. Συγκεκριμένα θέλω να ελέγχει για πάραδειγμα αν υπάρχει καποιος φάκελος σε ένα site. . Δοκίμασα κώδικα του στυλ fopen με reading αλλά δε διαβάζει αν υπάρχει ο φάκελος που ζητάω.

Έχετε καμιά ιδέα?

Ευχαριστώ

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από soteres2002 » 05 Δεκ 2008 02:15

http://gr.php.net/file_exists (εκτελεί εσωτερικά την access() syscall σε unix συστήματα).

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από korgr » 05 Δεκ 2008 10:19

Να συμπληρώσω μόνο κάτι σημαντικό.
Η file_exists θα επιστρέψει true ακόμα και αν το όνομα είναι αρχείο και όχι φάκελος, οπότε αν θέλουμε να κάνουμε έλεγχο μόνο για φάκελο πρέπει να την χρησιμοποιούμε σε συνδυασμό με την is_file που αγνοεί τους φακέλους:

Κώδικας: Επιλογή όλων

<?
$dirname="MyFolder";
if&#40;file_exists&#40;$dirname&#41; && !is_file&#40;$dirname&#41;&#41;&#123;
// Είναι φάκελος!!!
&#125;
?>
Εναλλακτικά υπάρχει και η is_dir

redalert19882000
Δημοσιεύσεις: 31
Εγγραφή: 15 Ιούλ 2007 21:39

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από redalert19882000 » 05 Δεκ 2008 18:18

Ναι παίζει αυτό τοπικά. Απομακρυσμένα δε παίζει. Θέλω να μου ελέγχει αν υπάρχει κάποιος φάκελος σε απομακρυσμένο site. Προφανώς θα χρειαστό και το http protocol για να το ανοίξω, οπότε θα χρειαστό και sockets. Αλλά δε τα καταφέρνω.

Λίγο Help...

Ευχαριστώ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6228
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από fafos » 05 Δεκ 2008 20:57

Me cUrl:

Κώδικας: Επιλογή όλων

<?

function url_exists&#40;$url&#41; &#123;
    $handle   = curl_init&#40;$url&#41;;
    if &#40;false === $handle&#41;
    &#123;
        return false;
    &#125;
    curl_setopt&#40;$handle, CURLOPT_HEADER, false&#41;;
    curl_setopt&#40;$handle, CURLOPT_FAILONERROR, true&#41;;  // this works
    curl_setopt&#40;$handle, CURLOPT_NOBODY, true&#41;;
    curl_setopt&#40;$handle, CURLOPT_RETURNTRANSFER, false&#41;;
    $connectable = curl_exec&#40;$handle&#41;;
    curl_close&#40;$handle&#41;;   
    return $connectable;
&#125;

$folder =  url_exists&#40;'http&#58;//www.freestuff.gr/forums/'&#41;;


if&#40;$folder == 1&#41; &#123; echo '<font color="Green">O FAKELOS YPARXEI</font>';&#125; else &#123; echo '<font color="Red">O FAKELOS DEN YPARXEI</font>';&#125;
?>

redalert19882000
Δημοσιεύσεις: 31
Εγγραφή: 15 Ιούλ 2007 21:39

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από redalert19882000 » 05 Δεκ 2008 21:51

να σε καλά φίλος. Δουλεύει τέλεια τέλεια.
Ευχαριστώ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6228
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από fafos » 05 Δεκ 2008 21:56

redalert19882000 έγραψε:να σε καλά φίλος. Δουλεύει τέλεια τέλεια.
Ευχαριστώ
auto omos den mporei na doulepsei se sites pou kanoun redirect otan den yparxei o fakellos h to arxeio ... gia paradeigma to pathfinder.gr pou otan den vrei arxeio h fakelo se epistrefei sthn arxikh tou selida... h curl vlepei thn arxikh selida kai nomizei oti yparxei o fakelos...

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από soteres2002 » 05 Δεκ 2008 22:34

Βασικά, η file_exists δουλεύει με HTTP filter, δλδ αντί για ενα local path βάζεις απλά URL. Aρκεί φυσικά να είναι on το HTTP protocol filter στην PHP.

redalert19882000
Δημοσιεύσεις: 31
Εγγραφή: 15 Ιούλ 2007 21:39

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από redalert19882000 » 06 Δεκ 2008 10:21

με file_exists δε μου έπαιξε. Είμαι κατά 99.9% σίγουρος ότι το έγραψα και το έκανα καλά. Όσο για το άλλο που είπες fofos προφανώς ναι ισχύει. Αλλά για το site που το θέλω είναι ok.

Ευχαριστώ και πάλι παίδες

redalert19882000
Δημοσιεύσεις: 31
Εγγραφή: 15 Ιούλ 2007 21:39

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από redalert19882000 » 06 Δεκ 2008 11:01

Μια άλλη ερώτηση μου είναι αν μπορώ να ανοίξω πολλές λειτουργίες curl ώστε να έλεγχει ανα 10 φακέλους ταυτόχρονα για παράδειγμα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6228
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από fafos » 06 Δεκ 2008 18:21

redalert19882000 έγραψε:Μια άλλη ερώτηση μου είναι αν μπορώ να ανοίξω πολλές λειτουργίες curl ώστε να έλεγχει ανα 10 φακέλους ταυτόχρονα για παράδειγμα
me to foreach... ena aplo paradeigma me forma:

Κώδικας: Επιλογή όλων

<?
if&#40;$_POST&#91;doit&#93; == 'ok'&#41; &#123;
function url_exists&#40;$url&#41; &#123;
    $handle   = curl_init&#40;$url&#41;;
    if &#40;false === $handle&#41;
    &#123;
        return false;
    &#125;
    curl_setopt&#40;$handle, CURLOPT_HEADER, false&#41;;
    curl_setopt&#40;$handle, CURLOPT_FAILONERROR, true&#41;;  // this works
    curl_setopt&#40;$handle, CURLOPT_NOBODY, true&#41;;
    curl_setopt&#40;$handle, CURLOPT_RETURNTRANSFER, false&#41;;
    $connectable = curl_exec&#40;$handle&#41;;
    curl_close&#40;$handle&#41;;   
    return $connectable;
&#125;

$urls = $_POST&#91;url&#93;;
foreach &#40;$urls as $value&#41; &#123;
$folder =  url_exists&#40;$value&#41;;




if&#40;$folder == 1&#41; &#123; echo '<font color="Green">O FAKELOS '.$value.' YPARXEI</font><br>';&#125; else &#123; echo '<font color="Red">O FAKELOS  '.$value.'  DEN YPARXEI</font><br>';&#125;


&#125;
&#125;

?>

<form name="form" action="" method="post" id="Form1">
<input name="doit" type="hidden" value="ok"  />
URL 1&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 2&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 3&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 4&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 5&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 6&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 7&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 8&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 9&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
URL 10&#58; <input name="url&#91;&#93;" type="text" id="url&#91;&#93;"  />
<br>
<br><input type="submit" name="submit" value=" Elenxos URL "  >


redalert19882000
Δημοσιεύσεις: 31
Εγγραφή: 15 Ιούλ 2007 21:39

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από redalert19882000 » 06 Δεκ 2008 18:34

Καλησπέρα fofos και ευχαριστώ για την απάντηση σου, αλλά δεν ήταν αυτό που ακριβώς ζητούσα(μαλλόν εγώ δεν έγινα κατανοητός).

Το να ελέγχει πολλούς φακέλους ταυτόχρονα το έχω κάνει και παίζει μια χαρά. Αλλα μου αργεί πολύ(σχετικά ντάξει όχι και τόσο πολύ) να ελέγχει 1 φάκελο κάθε στιγμή. Οπότε για να ελέγχει 10 φακέλους παίρνει περίπου στα 4-5 δευτερολέπτα. Θα ήθελα λοιπόν ας το πούμε να ανοίγει 10 διαφορετικά connections και να ελέγχει και τους 10 φακέλους μαζί. Τα αποτελέσματα που θα μου δίνει να τα δίνει ανά 10. Με πιάνεις;

Σαν να τρέχω για παράδειγμα το ίδιο script από πολλούς servers αλλά το θέλω σε έναν...

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6228
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από fafos » 06 Δεκ 2008 18:40

redalert19882000 έγραψε:Καλησπέρα fofos και ευχαριστώ για την απάντηση σου, αλλά δεν ήταν αυτό που ακριβώς ζητούσα(μαλλόν εγώ δεν έγινα κατανοητός).

Το να ελέγχει πολλούς φακέλους ταυτόχρονα το έχω κάνει και παίζει μια χαρά. Αλλα μου αργεί πολύ(σχετικά ντάξει όχι και τόσο πολύ) να ελέγχει 1 φάκελο κάθε στιγμή. Οπότε για να ελέγχει 10 φακέλους παίρνει περίπου στα 4-5 δευτερολέπτα. Θα ήθελα λοιπόν ας το πούμε να ανοίγει 10 διαφορετικά connections και να ελέγχει και τους 10 φακέλους μαζί. Τα αποτελέσματα που θα μου δίνει να τα δίνει ανά 10. Με πιάνεις;

Σαν να τρέχω για παράδειγμα το ίδιο script από πολλούς servers αλλά το θέλω σε έναν...
o xronos eksagoghs apotelesmaton eksartatai apo thn antapokrish tou allou server.. den exei na kanei kati me ton diko sou server.. anoigontas 10 diaforetika connections mallon to kaneis poio argo para poio grhgoro.. an to dokimaseis me fakelous pou yparxoun ston diko sou server tha katalaveis thn diafora..


note: fafos oxi fofos :D

redalert19882000
Δημοσιεύσεις: 31
Εγγραφή: 15 Ιούλ 2007 21:39

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από redalert19882000 » 06 Δεκ 2008 18:59

χεχ fafos :D ναι μάλλον έτσι είναι. Απλά θα μπορούσες να μου δείξεις ένα tut σχετικά με το πως γίνεται να ανοίγω 10 ΔΙΑΦΟΡΕΤΙΚΑ(και το τονίζω γτ αν βάλω ένα απλό while περιμένω μέχρι να τελειώσει το 1ο και μετά πάνε όλα τα όλα. Ας το πούμε πως το while μεταχειρίζεται αυτά που θες διαδοχικά) connections; Νταξει 10 που είπα ίσως είναι πολλά. Αλλα 2 μπορούν να γίνουν εύκολα...

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6228
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος αν υπάρχει απομακρυσμένος φάκελος

Δημοσίευση από fafos » 06 Δεκ 2008 19:10

redalert19882000 έγραψε:χεχ fafos :D ναι μάλλον έτσι είναι. Απλά θα μπορούσες να μου δείξεις ένα tut σχετικά με το πως γίνεται να ανοίγω 10 ΔΙΑΦΟΡΕΤΙΚΑ(και το τονίζω γτ αν βάλω ένα απλό while περιμένω μέχρι να τελειώσει το 1ο και μετά πάνε όλα τα όλα. Ας το πούμε πως το while μεταχειρίζεται αυτά που θες διαδοχικά) connections; Νταξει 10 που είπα ίσως είναι πολλά. Αλλα 2 μπορούν να γίνουν εύκολα...
oti kai na kaneis h curl tha perimenei na teleiosei h proth routina gia na ektelesei thn epomenh!! ektos an trexei 2 selides tautoxrona... alla pali den katalavaino giati se provlimatizei o xronos ekteleshs... :roll:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης