Toon posts:

[PHP] Link leggen naar andere server

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik heb het volgende scriptje waarmee ik een directory uitlees:
PHP:
1
<? $handle = opendir('documenten/functiebeschrijvingen'); while(false != ($file = readdir($handle))){    if($file != "." &amp;&amp; $file != ".." &amp;&amp; stristr($file, ".doc") != ""){        echo "<a href=documenten/functiebeschrijvingen/$file target=_blank>$file</a><br>";}}closedir($handle);?>

Nou werkt dit redelijk naar behoren, maar nog niet helemaal. Ik wil namelijk een directory uitlezen die zich op een andere server bevindt, geen server op het internet, maar een andere server binnen het bedrijf. Als ik wil linken op de HTML manier gaat dit niet. Weet een van jullie hoe dit mogelijk is?

Ook is het zo dat dit scriptje automatisch een link produceert. Probleem is echter dat zodra er een spatie in de bestandsnaam zit, de link wordt afgekapt bij de spatie en dus vervolgens doodloopt. Weet iemand een oplossing hiervoor?

Bedankt voor jullie tijd!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:35

gorgi_19

Kruimeltjes zijn weer op :9

Nou werkt dit redelijk naar behoren, maar nog niet helemaal. Ik wil namelijk een directory uitlezen die zich op een andere server bevindt, geen server op het internet, maar een andere server binnen het bedrijf. Als ik wil linken op de HTML manier gaat dit niet. Weet een van jullie hoe dit mogelijk is?
Linken naar een ander bestand (bestand b.php), en dit bestand (b.php) moet het betreffende bestand openen, de juiste contenttype naar de client sturen en als laatste de inhoud van het bestand binair naar de client sturen.
Direct linken kan niet (gelukkig)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 25-07 18:17

Skinny

DIRECT!

Probleem 1 :

Kun je niet op e.o.a. manier (ligt aan je OS & Netwerk) een 'mapping' maken naar die directory op de andere server. Dan kun je PHP gewoon die directory uit laten lezen alsof het een lokale directory/schijf.

Dit doe ik namelijk ook hier. Een Linux server laat ik inloggen op een lokale Novell server om daar vervolgens bestanden vanaf de trekken.

Probleem 2:
Spaties mogen officieel niet in een URL, zie..

http://www.php.net/urlencode

SIZE does matter.
"You're go at throttle up!"


  • DiedX
  • Registratie: December 2000
  • Laatst online: 22:35
Ik zet inderdaad in op OS-niveau. Wat voor Windows/Linux/Unices gebruik je?

Wellicht is cURL een oplossing voor je.

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Verwijderd

Topicstarter
Bedankt voor de snelle reacties, ik zal het eens op die manier gaan proberen!

Edit: Ik zit hier op WINNT 4.0

  • Grum
  • Registratie: Juni 2001
  • Niet online
Probleem is echter dat zodra er een spatie in de bestandsnaam zit, de link wordt afgekapt bij de spatie en dus vervolgens doodloopt. Weet iemand een oplossing hiervoor?
Dit is dus geen PHP probleem of iets in die trant maar gewoon een gebrek aan HTML kennis

<a href="url met spaties kan nu ook">

[edit]
Ik lees nu de andere reacties nog es .. en der worden best bizar-vage dingen beweerd :) ... O M G :) (das Oh My God voor de non-nerds :9)

gorgi_19: lees voortaan aub 1 alinea verder dan je neus lang is ;)

Skinny: geef jij es een quote uit een rfc waarin staat dat spaties niet in een url mogen zitten ? .. waar denk je anders dat ze %20 voor hebben verzonnen etc ? :)

DiedX: jij gaat ook je remblokjes bekijken als je benzine op is ? :D

  • Tom
  • Registratie: Juni 1999
  • Niet online

Tom

Op woensdag 03 juli 2002 14:37 schreef Grum het volgende:

[..]

Dit is dus geen PHP probleem of iets in die trant maar gewoon een gebrek aan HTML kennis
Alleen IE (of andere niweuere browsers, mozilla enzo zal t ook wel doen)is zo 'vriendelijk' om ze om te zetten, maar oudere browsers pikken dat niet.

  • Grum
  • Registratie: Juni 2001
  • Niet online
Tom: Noem eens een browser die et NIET ondersteund en die nog voor meer dan 5% in de browser-stats verschijnt.

:Z :+

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 25-07 18:17

Skinny

DIRECT!

Op woensdag 03 juli 2002 14:43 schreef Tom het volgende:

[..]

Alleen IE is zo 'vriendelijk' om ze om te zetten, maar oudere browsers pikken dat niet.
Ik was al aan het zoeken in de HTML specs, maar kon zo snel het niet vinden.. better safe then sorry lijkt me..

SIZE does matter.
"You're go at throttle up!"


  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 25-07 18:17

Skinny

DIRECT!

Op woensdag 03 juli 2002 14:44 schreef Grum het volgende:
Tom: Noem eens een browser die et NIET ondersteund en die nog voor meer dan 5% in de browser-stats verschijnt.

:Z :+
Wat doet de term 'purist' in jouw ondertitel ?? ;)

SIZE does matter.
"You're go at throttle up!"


  • Tom
  • Registratie: Juni 1999
  • Niet online

Tom

Op woensdag 03 juli 2002 14:44 schreef Grum het volgende:
Tom: Noem eens een browser die et NIET ondersteund en die nog voor meer dan 5% in de browser-stats verschijnt.

:Z :+
Officieel mag het niet, 'kvind het zelf niet echt netjes om het niet te doen. Bovendien denk ik dat searchengines daar echt geen rekening mee gaan houden.. kun je beter gewoon een urlencode() (PHP) of server.urlencode() (VB) eromheen gooien, dan weet je zeker dat het goed werkt.

  • DiedX
  • Registratie: December 2000
  • Laatst online: 22:35
Op woensdag 03 juli 2002 14:37 schreef Grum het volgende:

DiedX: jij gaat ook je remblokjes bekijken als je benzine op is ? :D
Beetje onzinnige reactie, maar goed. Als de taak is om af te remmen, dan kan je dat doen door de benzine eruit te halen ja :) Je kan ook de remblokjes gebruiken.

Even serieus: Ik ben geen PHP-freak, maar het probleem (kon) op diverse manieren opgelost worden. Met UNIX via NFS, maar dat is nu niet van toepassing :)

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 25-07 18:17

Skinny

DIRECT!

Op woensdag 03 juli 2002 14:37 schreef Grum het volgende:


Skinny: geef jij es een quote uit een rfc waarin staat dat spaties niet in een url mogen zitten ? .. waar denk je anders dat ze %20 voor hebben verzonnen etc ? :)
Grum: Best wel irri, je reply bewerken als reaktie op wat erna staat ;)

Maaruh... %20 is natuurlijk spaties in URLs, maar kom jij bij de juiste pagina uit als je
code:
1
http://www.eenserver.com/downloads/dit is een test.zip

Intikt?

Dit wordt door hier door IE netjes omgezet naar
code:
1
http://10.44.31.90/downloads/dit%20is%20een%20test.zip

Zoals je zelf reeds verteld wordt dit door de meeste browsers netjes voor je gedaan en heeft de gebruiker daar geen omkijken naar, maar SPATIES (als in : ALT-032) mogen niet in een URL dunkt mij.


[edit]

Bron : http://www.blooberry.com/indexdot/html/topics/urlencoding.htm#whatwhy
"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."
Some characters present the possibility of not being understood within URLs for various reasons. These characters should also always be encoded.

Space - Significant sequences of spaces may be lost in some uses (especially multiple spaces)
Internet Explorer is notoriously relaxed in its requirements for encoding spaces in URLs. This tends to contribute to author sloppiness in authoring URLs. Keep in mind that Netscape and Opera are much more strict on this point, and spaces MUST be encoded if the URL is to be considered to be correct.

SIZE does matter.
"You're go at throttle up!"


Verwijderd

Topicstarter
Dit is dus geen PHP probleem of iets in die trant maar gewoon een gebrek aan HTML kennis
Ja dat is wel leuk en aardig en ik weet ook wel dat spaties op die manier mogelijk zijn. Misschien heb ik mn probleem niet helemaal duidelijk omschreven.

Het zit zo dat wanneer ik een directory uitlees, dat automatisch de filenames worden gebruikt als link, heeft de filename echter een spatie, bijv: 'Pietjes mooie verslag.doc', dan maakt PHP de link 'Pietjes', welke vervolgens doodloopt.

Edit: Juust ik snap het 'al' :z

Verwijderd

eeej, psst!

Het ging om die quotes eromheen :D

Verwijderd

extra note bij skinny's reply hierboven: je mag dus technisch gezien zelfs & teken gebruiken in een url. HTML4 zegt nog 'boeien', XHTML echter al niet meer. Grun, als jij een 'purist' wil zijn, zou ik toch eventjes wat meer aan standaarden voldoen :p

verder: probleem 2 is done, probleem 1: je moet hem als documentroot hebben staan, anders kan PHP het wel lezen, maar de webserver heeft er dan alsnog geen recten toe (zolang je iis niet gehacked word dan)

een mogelijkheid is het maken van een php scriptje, die een file inleest en output naar de gebruiker
PHP:
1
<?$fp = fopen('mapped_drive:/map/bestand.doc', 'RB');header('deze weet ik niet, damned. IIG een header die aangeeft dat het een download is ofzo' );while(!feof($fp)){    echo fgets($fp, 4096);}?>

Verwijderd

Topicstarter
Nogmaals bedankt!

Ik ga maar weer eens aan de slag :)
Pagina: 1