[php] fgets

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben zelf net 2 weken actief met php en probeer natuurlijk meteen het meeste uit te halen :). Nu heb ik ergens een script gevonden en aangepast voor mn eigen gebruik alleen nu alleen een paar vragen over fgets. Ik heb php manual al bekeken maar daar wordt ik helaas niet wijzer van. Hieronder ff eerst de code en dan de vraag.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php

$file_loc = "C:\\test.txt";

$whattoread = fopen($file_loc, "r");

$generinfal = fgets($whattoread, 4096);
$product = fgets($whattoread, 4096);
$preos = fgets($whattoread, 25);
$os = fgets($whattoread, 4096);
$version = fgets($whattoread, 4096);
$expbus = fgets($whattoread, 4096);
$space1 = fgets($whattoread, 4096);
$description = fgets($whattoread, 4096);
$presystem = fgets($whattoread, 20);
$system = fgets($whattoread, 4096);
$bootup = fgets($whattoread, 4096);
$contactinfo = fgets($whattoread, 4096);
$location = fgets($whattoread, 4096);
$space2 = fgets($whattoread, 4096);
$asset = fgets($whattoread, 4096);
$device = fgets($whattoread, 4096);
$prepc = fgets($whattoread, 32);
$pc = fgets($whattoread, 4096);
$premonitor = fgets($whattoread, 25);
$monitor = fgets($whattoread, 4096);
$harddisk = fgets($whattoread, 4096);
$memory = fgets($whattoread, 4096);
 
echo "<table border=1>
        <tr>
            <td>Windows Versie</td>
            <td>$os</td>
        </tr>
        <tr>
            <td>PcNaam</td>
            <td>$system</td>
        </tr>
        <tr>
            <td>Serienr PC</td>
            <td>$pc</td>
        </tr>
        <tr>
            <td>Serienr Monitor</td>
            <td>$monitor</td>
        </tr>
    </table>";

fclose($whattoread);
?>


het zal wel niet een mooie code zijn maar doet even nu wel wat ik wil.. maar zelf heb ik hier een hekel aan en wil het dus gaan opschonen.
Van de text heb ik maar enkele regels nodig. hierboven maak ik gewoon van elke regel een variable en gebruik ze daarna niet meer maar mij lijkt me dat dat makkelijker kan.
Ook in het volgende een vraagje
PHP:
1
2
$prepc = fgets($whattoread, 32);
$pc = fgets($whattoread, 4096);

hiermee lukt het me om eerst 32 tekens over te slaan en dan de rest wel weer te geven (hierin staat dan mn serienummer.)

kan iemand me helpen of misschien beter naar een goede tutorial sturen? want dan leer ik er ook nog van :)

mijn dank alvast,

[ Voor 8% gewijzigd door Verwijderd op 24-07-2003 12:49 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Gewoon Topsis installeren :*)

Lama... Ik heb uit een betrouwbare bron vernomen dat dit er niet mee kan :-)

[ Voor 58% gewijzigd door Verwijderd op 24-07-2003 12:12 ]


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

In de P&W faq kun je allemaal mooie resources (boeken en sites) omtrent PHP vinden:
P&W FAQ - Het FAQ/Beleid topic
(Klik op FAQ en dan PHP).

Kun je je code even (geformatteerd) tussen [php] tags zetten?

Who is John Galt?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Alweer zelf wat verder gekomen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

$file_loc = "C:\\test.txt";

$lines = array();
$whattoread = fopen($file_loc, "r");

while (!feof($whattoread)){
$line= fgets ($whattoread, 50000);
array_push($lines,$line);
}

echo "<table border=1>
        <tr>
            <td>Windows Versie</td>
            <td>$lines[2]</td>
        </tr>
        <tr>
            <td>PcNaam</td>
            <td>$lines[7]</td>
        </tr>
        <tr>
            <td>Serienr PC</td>
            <td>$lines[14]</td>
        </tr>
        <tr>
            <td>Serienr Monitor</td>
            <td>$lines[15]</td>
        </tr>
    </table>";

fclose($whattoread);
?>


mbv array gaat het toch wel makkelijker. dus code is weer wat schoner.
alleen nu laat hij de hele regel zien en dat is dan ook weer niet de bedoeling.

ik zal even de uitkomst laten zien

Windows Versie Operating System: Microsoft Windows 98
PcNaam System Name: PC0417
Serienr PC SystemDeskpro8102FHGZ0B9M8102FHGZ0B9M
Serienr Monitor MonitorCOMPAQ V700016CH26AA494

de bedoeling is dattie bij bv alleen het vetgedrukte laat zien

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Die while-constructie kun je evt makkelijk vervangen door het file()-commando.

En dan in je echo zoiets doen:
echo "vaste html" . substring($lines[X], ...) . "vaste html";

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thnx! de waardes uit een url halen was ook precies wat ik wilde en substr werkte ook perfect. de code is geworden:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

$lines = file ('http://pc0282:2301/DMIAGENT/CFSYSINF.TPL');

echo "<table border=1>
        <tr>
            <td>Windows Versie</td>
            <td>".substr($lines[350],11,-4)."</td>
        </tr>
        <tr>
            <td>PcNaam</td>
            <td>".substr($lines[404],12,-4)."</td>
        </tr>
        <tr>
            <td>Serienr PC</td>
            <td>".substr($lines[503],22,-4)."</td>
        </tr>
        <tr>
            <td>Serienr Monitor</td>
            <td>".substr($lines[504],22,-4)."</td>
        </tr>
    </table>";

?>


nu op naar mn volgende cursus :) ik wil dat ik de pc naam in de url kan aanpassen. dus $lines = file ('http://pc0282:2301/DMIAGENT/CFSYSINF.TPL'); moet iets worden zoals dit $lines = file ('http://pc($pcnr):2301/DMIAGENT/CFSYSINF.TPL');. maaruh dat zal wel niet werken... ik zoek verder...!!

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
PHP:
1
$lines = file ('http://pc($pcnr):2301/DMIAGENT/CFSYSINF.TPL');

Bijna:
PHP:
1
$lines = file ('http://pc'.$pcnr.':2301/DMIAGENT/CFSYSINF.TPL');

of
PHP:
1
$lines = file ("http://pc$pcnr:2301/DMIAGENT/CFSYSINF.TPL");


Binnen single quotes qorden variabelen niet omgezet, via dubbele quotes wel
(sommige mensen denken/zeggen dat optie 1 sneller is)

[ Voor 16% gewijzigd door mocean op 24-07-2003 15:17 ]

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

De eerste van mocean moet met {} ipv ()

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
ACM schreef op 24 juli 2003 @ 15:34:
De eerste van mocean moet met {} ipv ()
Hmm nee, dat was juist een voorbeeld dat niet werkte. Als je dat aanpast, dan werkt 'ie inderdaad wel. ;)

Verder is de moraal van het verhaal natuurlijk: ken de taal waarmee je werkt, en ken de standaard library. Lees dus eerst de PHP manual over de taal door en blader de library reference even door. Dan heb je een goed overzicht van de mogelijkheden van PHP. Van de library zijn uiteraard vooral de teksten over file access, strings en arrays van belang.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
iedereen bedankt.. het scriptje werkt perfect :).. maarja.. ben nog niet tevreden dus ik ga weer verder met proggen..
Pagina: 1