Αναζήτηση αρχείου μέσα σε φάκελο

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

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

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

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από fafos » 06 Απρ 2011 19:34

des auto: http://www.freestuff.gr/forums/viewtopi ... e&start=30

anti gia query pou psaxnei sthn vash esy xrhsimopoieis thn glob klp gia anazhthsh sta arxeia..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 06 Απρ 2011 20:01

Εγώ θα χρησιμοποιήσω το Default Functionality ή το Remote Datasource;
fafos έγραψε:des auto: http://www.freestuff.gr/forums/viewtopi ... e&start=30

anti gia query pou psaxnei sthn vash esy xrhsimopoieis thn glob klp gia anazhthsh sta arxeia..

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

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από fafos » 06 Απρ 2011 20:18

to pio? enas tapeinos psaras eimai.. pou na xero agglika? :lol:
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 06 Απρ 2011 20:21

lol :P Στο link που μου έδωσες: http://jqueryui.com/demos/autocomplete/

Έχει στη δεξιά στήλη κάποια παραδείγματα με διαφορετικές τεχνικές. Δεν έχω ιδέα όμως απο JSON κλπ, εμένα ποιο είναι αυτό που μ'ενδιαφέρει απο αυτά;
fafos έγραψε:to pio? enas tapeinos psaras eimai.. pou na xero agglika? :lol:

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

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από fafos » 06 Απρ 2011 20:27

mhn pas ekei mesa.. des sto post to paradeigma tou dpa.. aplos, anti gia query pou praxnei sthn vash me to search_contacts.php esy tha valeis ton kodika me to glob psaxnontas stous fakellous kai tha dhmiourgeis mia array pou tha typoneis me to echo json_encode($return_arr);
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 06 Απρ 2011 20:56

Μέχρι στιγμής έχω αυτό στο index.php (πρόσθεσα πάνω πάνω τον νέο κώδικα για την φόρμα και το jquery και άφησα το υπόλοιπο αρχείο όπως ήταν πριν): http://pastebin.com/By06UcAe
και αυτό στο search.php (το οποίο καλώ)

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

<?php echo json_encode&#40;$_GET&#91;'birds'&#93;&#41;; ?>
Όταν γράφω όμως στο textbox ενώ δείχνει ότι φορτώνει δεν μου επιστρέφει κανένα αποτέλεσμα. Λογικά δεν πρέπει να έχω και ένα form action που να περιλαμβάνει το <input> μου;

Σημείωση: αν βάλω στο search.php το εξής:

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

<?php echo json_encode&#40;'test'&#41;;
λειτουργεί.
fafos έγραψε:mhn pas ekei mesa.. des sto post to paradeigma tou dpa.. aplos, anti gia query pou praxnei sthn vash me to search_contacts.php esy tha valeis ton kodika me to glob psaxnontas stous fakellous kai tha dhmiourgeis mia array pou tha typoneis me to echo json_encode($return_arr);

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 06 Απρ 2011 20:59

Γράψε λάθος! Έβαλα λάθος variable name μέσα στο search.php. το σωστό είναι

<?php echo json_encode($_GET['term']); ?>

Προς το παρόν δουλεύει. Για να δούμε παρακάτω.. :)

eyxaristw!

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 06 Απρ 2011 21:25

Με το εξής search.php δεν δουλεύει, ψάχνει αλλά δεν επιστρέφει τίποτα.. http://pastebin.com/bx5nkv0P

Φαίνεται σαν ο υπόλοιπος κώδικας εκτός του json_encode να τα χαλάει. Πρέπει μόνο ένα json_encode να έχω στο αρχείο μήπως;

edit: αν πάω στο index.php, γράψω ένα keyword (που υπάρχει σαν εικόνα) και πατήσω το Submit, τότε θα με πάει στο search.php και θα τυπώσει κανονικά τα αποτελέσματα..
Τελευταία επεξεργασία από το μέλος Mandingueiro την 06 Απρ 2011 21:31, έχει επεξεργασθεί 1 φορά συνολικά.

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

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από fafos » 06 Απρ 2011 21:30

sou deixno ena aplo pou efeiaxa sta grhgora:

arxeio me forma:

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

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>


			<link rel="stylesheet" href="http&#58;//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/themes/base/jquery-ui.css" type="text/css" media="all" />
			<link rel="stylesheet" href="http&#58;//static.jquery.com/ui/css/demo-docs-theme/ui.theme.css" type="text/css" media="all" />
			<script src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
			<script src="http&#58;//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js" type="text/javascript"></script>
			<script src="http&#58;//jquery-ui.googlecode.com/svn/tags/latest/external/jquery.bgiframe-2.1.2.js" type="text/javascript"></script>
			<script src="http&#58;//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/i18n/jquery-ui-i18n.min.js" type="text/javascript"></script>
		
   <script type="text/javascript">
      $&#40;document&#41;.ready&#40;function&#40;&#41;
      &#123;
         $&#40;'#search'&#41;.autocomplete&#40;&#123;
            source&#58; "search_files.php",
            minLength&#58; 1,
                select&#58; function&#40;event, ui&#41; &#123;
                    $&#40;'#search'&#41;.val&#40;ui.item.value&#41;;
                &#125;
         &#125;&#41;;

      &#125;&#41;;
</script>
</head>
<body>

<form name="input" action="" method="get">
Keyword&#58; <input type="text" name="search" id="search"/>
<input type="submit" value="Search" />
</form>

<?php
	if&#40;	$_GET&#91;'search'&#93;&#41; &#123;	
$folder = 'images';	
$search= trim&#40;$_GET&#91;'search'&#93;&#41;;
$search= $folder.' '.$search;
$search = preg_replace&#40;'/\s\s+/',' ', $search&#41;;
$search= explode&#40;" ", $search&#41;;
$folder = $search&#91;0&#93;.'/';// o fakellos
$file = $search&#91;1&#93;;// o titlos tou arxeiou

$images = glob&#40;"" . $folder . "*" .$file . "*.*"&#41;;

foreach&#40;$images as $image&#41;
&#123;
echo $image.'<br />';
&#125; 

&#125;
?>

</body>
</html>

kai to arxeio search_files.php:

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

<?php
	if&#40;	$_GET&#91;'term'&#93;&#41; &#123;	
$folder = 'images';	
$search= trim&#40;$_GET&#91;'term'&#93;&#41;;
$search= $folder.' '.$search;
$search = preg_replace&#40;'/\s\s+/',' ', $search&#41;;
$search= explode&#40;" ", $search&#41;;
$folder = $search&#91;0&#93;.'/';// o fakellos
$file = $search&#91;1&#93;;// o titlos tou arxeiou

$images = glob&#40;"" . $folder . "*" .$file . "*.*"&#41;;
echo json_encode&#40;$images&#41;; 

&#125;
?>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 06 Απρ 2011 21:54

Αυτό δεν λειτουργεί στην περίπτωσή μου επειδή εκτός απ'το term το οποίο το δίνει ο χρήστης στο text input, έχω και μία επιπλέον παράμετρο που χρησιμοποιεί η glob(), το φάκελο στον οποίο θα ψάξει, το οποίο το παίρνω απευθείας απο ένα select input που επιλέγει ο χρήστης.

Προσπαθώ λοιπόν να φτιάξω αυτό που μου 'στειλες αλλά στο console του firebug παίρνω αυτά τα errors.. λογικό άλλοστε..
( ! ) Notice: Undefined index: category in C:\wamp\www\search\search.php on line 14

Notice: Undefined index: in C:\wamp\www\search\search.php on line 15
Τα αρχεία μου είναι τα εξής:
index.php & search.php

Το θέμα είναι πως θα περάσω στο search.php (με τον ίδιο τρόπο που περνιέται το search term) το value του select input.

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 06 Απρ 2011 22:04

Φαντάζομαι ότι για να δουλέψει σωστά αυτό που θέλω να κάνω πρέπει με το που επιλέγει ο χρήστης κάτι στο select, να το περνάει με κάποιο τρόπο στο search.php και τότε να εμφανίζεται ένα textarea που θα βάζει το keyword του.

Έχω πέσει καθόλου μέσα; :P

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

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από fafos » 06 Απρ 2011 22:36

katarxas vale ena id sto select p.x. id="category"

meta vale ena keno option sthn arxh tou select opou protrepeis ton xrhsth na epileksei kapoion folder p.x. <option value="">Epilekste fakelo</option>

meta kane to script etsi:

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

   <script type="text/javascript">
      $&#40;document&#41;.ready&#40;function&#40;&#41;
      &#123;
	  var cat = '';
    $&#40;"#category"&#41;.change&#40;function &#40;&#41; &#123;
          cat = $&#40;this&#41;.val&#40;&#41;;
	  
         $&#40;'#search'&#41;.autocomplete&#40;&#123;
	            source&#58; "search.php?cat="+ cat,
            minLength&#58; 1,
                select&#58; function&#40;event, ui&#41; &#123;
                    $&#40;'#search'&#41;.val&#40;ui.item.value&#41;;
                &#125;
         &#125;&#41;;
        
        &#125;&#41;;
      &#125;&#41;;
</script>

kai to search.php kapos etsi:

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

<?php
	if&#40;	$_GET&#91;'term'&#93;&#41; &#123;	
$categories = array&#40; 'sugar' => 'proionta/sugar/',
				     'metropolitan' => 'proionta/metropolitan/',
				     'interior' => 'proionta/interior/',
				     'glamour' => 'proionta/glamour/',
		        &#41;;	
	
$cat = $_GET&#91;'cat'&#93;;
$folder = $categories&#91;$cat&#93;;
$search= trim&#40;$_GET&#91;'term'&#93;&#41;;
$search= $folder.' '.$search;
$search = preg_replace&#40;'/\s\s+/',' ', $search&#41;;
$search= explode&#40;" ", $search&#41;;
$folder = $search&#91;0&#93;;// o fakellos
$file = $search&#91;1&#93;;// o titlos tou arxeiou

$images = glob&#40;"" . $folder . "*" .$file . "*.*"&#41;;
echo json_encode&#40;$images&#41;; 

&#125;
?>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 07 Απρ 2011 02:52

Λειτουργεί με κάποιες διορθώσεις που έκανα.

Το θέμα είναι όμως ότι τώρα στα results που επιστρέφει με ajax καθώς γράφω, φαίνονται ολόκληρα τα paths και όχι μόνο τα filenames όπως θα έπρεπε.

Σκέφτηκα λοιπόν ότι θα πρέπει απο την $images στο search.php να δημιουργηθεί ένα νέο var το οποίο θα περιέχει μόνο το filename. Πρέπει λοιπόν να φτιάξω ένα function που θα ανιχνεύει το τελευταίο "/" στο $images και θα κρατάει μόνο ότι υπάρχει μετά απ'αυτό. Το αποτέλεσμα αυτό θα επιστρέφεται και με JSON.

Σωστή η λογική μου; Αν ναί, λες να χρησιμοποιήσω την strpos για να το κάνω;

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

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από fafos » 07 Απρ 2011 04:20

Mandingueiro έγραψε:Λειτουργεί με κάποιες διορθώσεις που έκανα.

Το θέμα είναι όμως ότι τώρα στα results που επιστρέφει με ajax καθώς γράφω, φαίνονται ολόκληρα τα paths και όχι μόνο τα filenames όπως θα έπρεπε.

Σκέφτηκα λοιπόν ότι θα πρέπει απο την $images στο search.php να δημιουργηθεί ένα νέο var το οποίο θα περιέχει μόνο το filename. Πρέπει λοιπόν να φτιάξω ένα function που θα ανιχνεύει το τελευταίο "/" στο $images και θα κρατάει μόνο ότι υπάρχει μετά απ'αυτό. Το αποτέλεσμα αυτό θα επιστρέφεται και με JSON.

Σωστή η λογική μου; Αν ναί, λες να χρησιμοποιήσω την strpos για να το κάνω;
mporeis kai me ena aplo str_replace($folder,"",$images) prin doseis to json na kaneis douleia sou.. den to dokimasa na do ti apotelesmata gyrna sto submit.. aplos eida an gyrna apotelesmata to autocomplete..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 07 Απρ 2011 13:53

Καλό αυτό. Δεν ήξερα ότι μπορείς μέσα σε array (glob()) να κάνεις str_replace στο κάθε στοιχείο χωρίς κάποιο function. Αλήθεια δε θα 'πρεπε κανονικά να χρειάζεται π.χ. μια array_walk() για να γίνει αυτό;

Τέλος πάντων. Προς το παρόν όλα καλά.. το έκανα κιόλας να βγάζει μήνυμα με JSON αν δεν βρίσκει κάτι με έναν απλό έλεγχο του $images.

Το θέμα είναι τώρα ότι αν στο search.php βάλω απο κάτω τον κωδικά για να τυπώνει τις εικόνες που βρήκε (αφού δηλαδή πατήσει το submit), τότε δεν λειτουργεί το json_encode που έχω βάλει πιο πάνω. Λέγοντας δεν λειτουργεί, εννοώ ότι στο index.php δεν λειτουργεί το autocomplete. Το καταλαβαίνω αυτό, λογικά κάνει conflict το οποιοδήποτε echo βάλεις εκτός του json_encode και δεν εμφανίζει κανένα αποτέλεσμα..

Για να το λύσω αυτό το θέμα, μπορώ να δημιουργήσω διαφορετικό αρχείο για τα results και διαφορετικό για το autocomplete, ή υπάρχει καμιά καλύτερη ιδέα;
fafos έγραψε:
Mandingueiro έγραψε:Λειτουργεί με κάποιες διορθώσεις που έκανα.

Το θέμα είναι όμως ότι τώρα στα results που επιστρέφει με ajax καθώς γράφω, φαίνονται ολόκληρα τα paths και όχι μόνο τα filenames όπως θα έπρεπε.

Σκέφτηκα λοιπόν ότι θα πρέπει απο την $images στο search.php να δημιουργηθεί ένα νέο var το οποίο θα περιέχει μόνο το filename. Πρέπει λοιπόν να φτιάξω ένα function που θα ανιχνεύει το τελευταίο "/" στο $images και θα κρατάει μόνο ότι υπάρχει μετά απ'αυτό. Το αποτέλεσμα αυτό θα επιστρέφεται και με JSON.

Σωστή η λογική μου; Αν ναί, λες να χρησιμοποιήσω την strpos για να το κάνω;
mporeis kai me ena aplo str_replace($folder,"",$images) prin doseis to json na kaneis douleia sou.. den to dokimasa na do ti apotelesmata gyrna sto submit.. aplos eida an gyrna apotelesmata to autocomplete..

Απάντηση

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

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

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