Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedon hakeminen kovalevyltä

Sivun loppuun

Kristal [04.01.2007 11:24:43]

#

Tässä siis pulma. Serverille olen laittanut koodin, minkä pitäisi hakea tietoa serverille mapatulta kovalevyltä. Tämä taas ei näytä onnistuvan ainakaan glob()-funktiolla. Tarkoituksena on hakea mapatulta asemalta tietyn muotoisia tiedostoja. Tietääkö kukaan millä se onnistuisi?

Tässä vähän koodia:

<?PHP
$alkuperainen_polku = ("G:\\Tiedostos\\kuvat");
$avattu_polku = fopen("$alkuperainen_polku");

$match = ($avattu_polku. "*.gif"); // Toiminto kusee, mutta tuohon lähinnä tarvitsisin apua.

if ( is_array ( $match ) ) {
   foreach ($match as $filename) {

   echo $filename;

   }
}
?>

Draiz [04.01.2007 12:42:34]

#

<?php
// Polku kuviin
$polku = "G:\\Tiedostos\\kuvat";

// Haettavat tiedostotyypit
$tyypit = "gif,png,jpg,jpeg";

// Käydään läpi kaikki mätsäykset
foreach (glob($polku."\*.{".$tyypit."}", GLOB_BRACE) as $tiedosto) {
   // Tulostetaan tiedoston polku
   echo $tiedosto."\r\n";
}
?>

Kristal [04.01.2007 12:59:05]

#

Eipä toimi, tuo glob() ei muistaakseni toimi kun toiselta kovolta haetaan tietoja. Tarvitsisin jonkin, millä korvata glob().

tkarkkainen [04.01.2007 13:10:56]

#

Polkua ei avata fopen()-funktiolla, vaan opendir():llä. readdir() toimii hieman hakemistoa lukiessa samaan tapaan kuin fgets() tiedostoa lukiessa, ja closedir() samalla tavalla kuin fclose().

Kristal [04.01.2007 13:24:36]

#

Taaskaan ei avittanut. Jostain syystä tuo oma koodi penkoo vain serverin tiedostot ja nuo muut koodit eivät tee sitäkään, eli kaikki katoaa.

tkarkkainen: olisiko sinulla mitään valmista koodinpätkää?

ajv [04.01.2007 14:12:31]

#

Pikainen kokeilu firman verkossa:

<?php
error_reporting(E_ALL);
// Polku dataan
$polku = "\\\Serverinnimi\Data\\";	// Hakeminen serveriltä koneen nimellä. Windows Explorerissa toimii => PHP:lla ei
$polku = '\\\10.96.54.223\Data\\';	// Hakeminen serveriltä koneen IP:llä. Windows Explorerissa toimii => PHP:lla ei
$polku = 'C:\\Data\\';				// Hakeminen lokaalilta levyltä, toimii OK kummassakin

if($dh = opendir($polku)){
	closedir($dh);
	echo 'jee';
}
?>

Blaze [04.01.2007 15:17:46]

#

ajv kirjoitti:

$polku = "\\\Serverinnimi\Data\\"; // Hakeminen serveriltä koneen nimellä.

Eiks ton pitäis olla \\\\Serverinnimi\\Data\\, jotta eskapetukset menee oikein, vai oliko tässä nyt vaan copypastepeikko?

ajv [04.01.2007 15:20:40]

#

Eikun kyl se noin meni, echotin tuon ja tulostui ihan "\\Serverinnimi\Data\"

Itse ihmettelin myös noita eskapetuksia et miten ne tollee käyttäytyy... käsittämätöntä sinänsä :)

Edit: veikkaan, että "\\\nerverinnimi\nata\\" tai "\\\terverinnimi\tata\\" tmv. ei olis toiminu :)

T.M. [04.01.2007 16:28:51]

#

Älkää käyttäkö \ merkkejä, käyttäkää / merkkejä, ja johan alkaa toimimaan...

Itselläni toimii / merkeillä ihan hyvin windowsissa, ja myös linuxissa, vaikka laittaisit toiselta kovolta, esim "K:/seppo"

Kristal [08.01.2007 12:22:49]

#

Ei toimi tuo T.M. esittämä esimerkkikään.

Myöskään ajv:n esimerkeistä ei ollut tällä kertaa apua.

Onko vielä muita mahdollisuuksia toteuttaa tätä hakua?

ajv [08.01.2007 15:51:43]

#

T.M. kirjoitti:

Itselläni toimii / merkeillä ihan hyvin windowsissa, ja myös linuxissa, vaikka laittaisit toiselta kovolta, esim "K:/seppo"

Nyt oli vissiin tarkoitus hakea verkkolevyltä. Kuhasta luin, että mappaukset ("K:") ovat käyttäjäkohtaisia, joten PHP ei välttämättä niitä ymmärrä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta