[PHP] met fopen() een smb-share benaderen

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Topicstarter
Ik ben bezig met php een scriptje te maken dat het log-bestand van onze flatprinter inleest, parsed en in een database pleurt, zodat we mooie statistiekjes kunnen maken over het gebruik en de kosten kunnen verdelen.
Nu is het probleem het volgende: de printer draait onder linux op de pc van een flatgenoot, en hij shared het logbestand via samba. De share is alleen toegankelijk voor mijn IP.
Het script en de database draaien op mijn pc, en op de een of andere manier moet ik dus via fopen() bij dat bestand zien te komen maar ik kan er niet achter komen hoe. Ik heb het geprobeerd met
code:
1
2
$bestand = fopen("smbclient //compnaam/page_log$/page_log","r");
$bestand = fopen("smb://compnaam/page_log$/page_log","r");

maar beide geven de foutmelding
code:
1
2
3
4
Warning: fopen(smbclient //compnaam/page_log$/page_log) [function.fopen]: 
failed to create stream: No such file or directory
Warning: fopen(smb://compnaam/page_log$/page_log) [function.fopen]: 
failed to create stream: No such file or directory


Ook zoeken op php.net en Google levert weinig op over connecten naar samba-shares met fopen en de search van GoT ook niks.

Weet iemand of ik op deze manier met fopen naar een samba share kan connecten of moet ik een andere oplossing verzinnen?

[ Voor 19% gewijzigd door Gertjan op 31-01-2003 15:34 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

move P&W => NOS

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 13-05 19:47

Super_ik

haklust!

werkt je commando wel onder shell? zou je dit niet met een exec() doen
en dan iets van exec("cat `blaat`"); ofzo :?

[ Voor 12% gewijzigd door Super_ik op 31-01-2003 15:36 ]

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • blackd
  • Registratie: Februari 2001
  • Niet online
-> NOS, maar dan nu echt.

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

:o
offtopic:
sorry blackd :*

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Shared filesysteem mounten en dan benaderen als een locale dir ?
/edit drive mappen dus ?

[ Voor 17% gewijzigd door Verwijderd op 31-01-2003 15:52 ]


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 12-05 17:05

chem

Reist de wereld rond

is smbclient / smb een stream-protocol dat php kent?
zo niet, dan zal je zelf een protocol-handler-class moeten maken.

http://www.php.net/manual...ream-register-wrapper.php - zo dus

[ Voor 25% gewijzigd door chem op 31-01-2003 15:46 ]

Klaar voor een nieuwe uitdaging.


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

chem schreef op 31 januari 2003 @ 15:45:
is smbclient / smb een stream-protocol dat php kent?
zo niet, dan zal je zelf een protocol-handler-class moeten maken.

http://www.php.net/manual...ream-register-wrapper.php - zo dus
CHem bedoelt dat je even SMBclient naar PHP moet porten... (toch, chem?)

Localhost, sweet localhost


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 12-05 17:05

chem

Reist de wereld rond

kvdveer schreef op 31 January 2003 @ 15:48:
[...]

CHem bedoelt dat je even SMBclient naar PHP moet porten... (toch, chem?)

Het 'even' hoor je me niet zeggen maar dat bedoel ik wel ja :P

Klaar voor een nieuwe uitdaging.


Verwijderd

Je kunt daar ook een smbclient wrapper van maken natuurlijk. Maar de exec() manier lijkt mij veel makkelijker. Beide opties hebben natuurlijk geen fijne performance, maar dat is volgens mij geen probleem.

  • spine
  • Registratie: Juni 2001
  • Niet online

spine

VISHUDDHI

watvoor OS draai jij dan?

[ Voor 197% gewijzigd door spine op 31-01-2003 15:57 ]

[BSDFreaks.nl] [www.Dark-Future.org] [Alizarin.nl]


  • Hagar
  • Registratie: Februari 2001
  • Laatst online: 14-10-2025

Hagar

Diabootic

Ali_Illegali schreef op 31 januari 2003 @ 15:32:
code:
1
2
$bestand = fopen("smbclient //compnaam/page_log$/page_log","r");
$bestand = fopen("smb://compnaam/page_log$/page_log","r");

code:
1
2
3
4
Warning: fopen(smbclient //compnaam/page_log$/page_log) [function.fopen]: 
failed to create stream: No such file or directory
Warning: fopen(smb://compnaam/page_log$/page_log) [function.fopen]: 
failed to create stream: No such file or directory
Ligt het aan mij of zit daar ook een fout in?
$/ <= wat is daar precies het nut van?

Nu ook zonder stropdas


Verwijderd

lukt het niet om eerst te mounten en daarna uit te lezen?, zoiets als

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?

$command = 'mount -t smbfs //compnaam/page_log$/  /mnt/temp';

$do = shell_exec($command);

if ($do)
{
    $file = file('/mnt/temp/page_log');

    $do = shell_exec('unmount /mnt/temp');

    print_r($file);
}
else echo 'er ging iets fout';

?>

[ Voor 38% gewijzigd door Verwijderd op 31-01-2003 16:24 ]


  • Wilke
  • Registratie: December 2000
  • Laatst online: 09:27
Even hier van afgezien: is het niet vele malen makkelijker om gewoon smbfs support in je kernel te gooien, zodat je die SMB share gewoon kunt mounten en dan gewoon doodleuk kunt doen alsof je een normale file opent?

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Of je kopieert het betreffende logfile door middel van sftp, ftp, http, nfs ...

Tientallen mogelijkheden lijkt me zo.

Everyone complains of his memory, no one of his judgement.


  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Topicstarter
Hagar schreef op 31 January 2003 @ 16:07:
[...]

Ligt het aan mij of zit daar ook een fout in?
$/ <= wat is daar precies het nut van?
Is een hidden share, niet verder vertellen dus ;)

We hebben het opgelost door er een ftpaccount voor aan te maken, en die kon gewoon aangesproken worden met fopen("user:pass@host/pad/naar/bestand","r");

Ik had gedacht dat er wel een makkelijkere manier voor was om het via smb te doen, vandaar de vraag. Mja, tis nu ook gelukt :)
Pagina: 1