[php] Output opvangen en gedeelte laten door sturen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

ik heb een scriptje, dat via een andere site een output geeft namelijk de volgende:

512/256;bbned;www.blabla.nl;
1024/320;kpn;www.blabla.nl;
1024/512;bbned;www.blabla.nl;
2048/320;kpn;www.blabla.nl;
2048/1024;bbned;www.blabla.nl;
4096/640;kpn;www.blabla.nl;
8192/1024;bbned;www.blabla.nl;

Nu wil ik een scriptje dat deze info verzameld,
en dus alleen de snelhededen (1ste gedeelte) en de aanbieder (2e gedeelte) door stuurd naar een andere php page/script.

dan krijg je het dus zo:

formulier -> output (wat hierboven staat) -> mijn pagina

(die gedeelte 1&2 van de output opvangt, en laat zien)

mijn vraag: hoe doe ik dit?

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

*kuch*taal*kuch*

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry wou ik net bij zetten...

PHP

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Zoek naar Explode op php.net

:*

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
maar de ouput is dus elke keer anders, en hoe verwerk ik dat als php noob,
dat het dus weer wordt weergeven.

Dus in het formulier, vullen ze het een an ander in, dan krijg ik de output van een andere site, en dat het formulier alleen dus die info ophaalt en niet naar de site toegaat.

dus:

form -> output -> form (met output gedeeltes)

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
maar hoe geef ik aan dan welke stukken hij mag doorsturen?
en hoe komt ie weer terug opmijn site, inplaats van de site waar de output vandaan komt......

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Dat staat allemaal op die pagina..

Nog een hint dan (joepie, spelletjes :))

laat 'm exploden op ;.
Dan krijg je een array met iedere waarde in de regel, dus in jou geval:

array[0] = 512/256
array[1] = bbned
array[2] = www.blabla.nl


nog meer? :)

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
ik heb echt geen flauw idee wat je probleem nu precies is :P
Maar met explode kun je iniedergeval de data "splitsen" op de ; bijvoorbeeld.
en hoe komt ie weer terug opmijn site, inplaats van de site waar de output vandaan komt......
wat denk je zelf? :P
Je zal die data binnen moeten halen in je script, deze verwerken en dan verder gaan naar die pagina waar die output getoond moet worden.

Waar ben je trouwens mee bezig als ik vragen mag? Wat voor een site?

//


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
<?php 

$output = "??????????????????????????"; 

$explode = explode(";", $output); 

echo "\$explode[0] = $explode[0]  \$explode[1] = $explode[1] <BR>"; 
echo "\$explode[3] = $explode[3]  \$explode[4] = $explode[4] <BR>"; 
echo "\$explode[6] = $explode[6]  \$explode[7] = $explode[7] <BR>"; 

?>


Bij $output="........" hoe laat ik daar de output inkomen
graag met een voorbeeldje ;)

Zoals je ziet heb ik dus om de 2 keer 1 explode overgeslagen omdat het www adres is en die hoeft niet meegenomen te worden...

[ Voor 64% gewijzigd door Verwijderd op 27-02-2004 16:14 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Als je url wrappers aan staan kun je daarvoor gewoon file () gebruiken. Anders moet je met HTTP gaan klooien en de url met fsockopen openen en HTTP gaan praten ;)

Voorbeelden staan genoeg in de manual

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


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nee maar ik bedoel dus het form -> output (varriabel) -> explode

hoe krijg ik de output die verschillend kan zien en het in de explode?

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Euhm

:? :?

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


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik moet een fsockopen on submit formulier code hebben
dus als je opsubmit drukt dat hij een pagina bezoekt, en de inhoud opslaat in een $blaba

Acties:
  • 0 Henk 'm!

Verwijderd

Het is niet zo moeilijk als het lijkt hoor. Je moet in je document gewoon een formulier zetten, dat dan zo er uit ziet ongeveer
HTML:
1
2
3
<form method=post>
<!-- hier die input dingen die je al zegd te hebben !-->
</form>

Dan moet je dus in php die ene pagina opvragen, wat je ongeveer zo gaat doen:
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
<?
$fp = fsockopen("www.de site die je moet hebben.com", 80, $errno, $errstr, 30);

if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
   $out = "POST / HTTP/1.1\r\n";
   $out .= "Host: www.weer die ene site die je moet hebben.com\r\n";
   $out .= "Connection: Close\r\n\r\n";

    foreach ($POST as $elm => $item) $out .= "{$elm}={$item}&";
    $out = substr($out,0,strlen($out)-1) . "\r\n\r\n";

   fputs($fp, $out);
   $gegevens="";
   while (!feof($fp)) {
       $gegevens .= fgets($fp, 128);
   }
   fclose($fp);

    //Ik neem aan dat dat direct de gegevens zijn die je zoekt

    $explode = explode(";", $gegevens);
    
    //Hier de dingen weergeven
}
?>
Er kunnen best nog fouten in zitten, het is niet getest. Maar volgens mij zou dit moeten werken.

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
een makkelijkere manier is misschien gebruik maken van CURL,
zie: http://nl3.php.net/curl

//


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
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
<html>
<body>
<form action="index.php" method=post>
<input type=text name="zipcode" maxlength=6 size=10>postcode<br>
<input type=text name="housenr" size=10>huisnummer<br>
<input type=hidden name="vervolgadres" value="http://ict-consultancy.net/postcode/terugversie2.php">
<br><br><br>
<input type=submit value="check postcode">
</body>
</html>


<? 
$fp = fsockopen("http://www.mxposure.nl/pci/pcresultmxposure.cfm", 80, $errno, $errstr, 30); 

if (!$fp) { 
   echo "$errstr ($errno)<br />\n"; 
} else { 
   $out = "POST / HTTP/1.1\r\n"; 
   $out .= "Host: http://www.mxposure.nl/pci/pcresultmxposure.cfm\r\n"; 
   $out .= "Connection: Close\r\n\r\n"; 

    foreach ($POST as $elm => $item) $out .= "{$elm}={$item}&"; 
    $out = substr($out,0,strlen($out)-1) . "\r\n\r\n"; 

   fputs($fp, $out); 
   $gegevens=""; 
   while (!feof($fp)) { 
       $gegevens .= fgets($fp, 128); 
   } 
   fclose($fp); 

    //Ik neem aan dat dat direct de gegevens zijn die je zoekt 

    $explode = explode(";", $gegevens); 
     
        echo "\$explode[0] = $explode[0]  \$explode[1] = $explode[1] <BR>"; 
    echo "\$explode[3] = $explode[3]  \$explode[4] = $explode[4] <BR>"; 
    echo "\$explode[6] = $explode[6]  \$explode[7] = $explode[7] <BR>"; 
} 
?>



Hij werkt nog niet....

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
om de postcode check te proberen, en zo kun je dus ook de output, etc. zien.
ga dan ff hier heen: http://ict-consultancy.net/postcode/heen.html

Maar zoals je ziet gaat hij eerst naar mxposure en vervolgens naar de output page.

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Als je meteen had gezegd dat het om een postcodecheck ging had ik misschien nog wat andere opties kunnen geven, heb namelijk breedbandwinkel.nl gebouwd ;)

//


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
aha oke, nou oke help me out please ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hij moet dus scannen of iemand in bbned of kpn gebied woont, of dat alle 2 beschikbaar zijn.

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Ik ga je niet helpen debuggen ofzo, dat is echt aan jezelf.
Kijk eens wat bovenstaand script teruggeeft dan?

Bovendien moet je gewoon het formulier naar een pagina op je eigen server posten en dat script dan de data op laten halen van die mxposure site.
Deze in die pagina verwerken en de output laten zien.

Zelf gebruik ik CURL (http://www.php.net/curl), is soms wat makkelijker en beter in te stellen.

[ Voor 14% gewijzigd door man-o-script op 27-02-2004 17:28 ]

//


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik weet dus niet welke ik dat ik moet laten opvragen van mxposure,
maar je had ook nog andere opties, typte je.....

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
als je die ingevoerde postcode en huisnummer binnenkrijgt in een script op je eigen server, kun je deze met bovenstaande manier toch makkelijk naar die mxposure site posten?
Je krijgt het resultaat dan terug in een string, en deze kun je weer verder verwerken.

Een andere optie is postcodecheckers van resp. BBned en KPN gebruiken, die van bbned vind je hier: http://pcdb.bbned.nl/ (lees de source ff)
voor die van KPN moet je officieel reseller worden ;)

Als je hier niet uit komt zou ik eens contact op nemen met die mxposure, geven die geen support ofzo :?

//


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nee die geven nu niet bepaald support nee,
en weet jij toevallig iets van een postcode toel voor versatel gebied?

Acties:
  • 0 Henk 'm!

Verwijderd

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
<html>
<body>
<form action="" method=post>
<input type=text name="zipcode" maxlength=6 size=10>postcode<br>
<input type=text name="housenr" size=10>huisnummer<br>
<br><br><br>
<input type=submit value="check postcode">
</body>
</html>


<?
$fp = socket_create(AF_INET,SOCK_STREAM ,SOL_TCP);
socket_connect($fp,"www.mxposure.nl",80);
if (!$fp) { 
   echo "$errstr ($errno)<br />\n"; 
} else { 
   $out = "POST /pci/pcresultmxposure.cfm HTTP/1.1\r\n";
   $out .= "Host: www.mxposure.nl\r\n";
   $out .= "Connection: Close\r\n\r\n"; 
    $out .= "zipcode={$_POST['zipcode']}&housenr={$_POST['housenr']}\r\n\r\n";

   socket_send($fp, $out,strlen($out),0);
   $gegevens="";
   $bffr="";
   while (socket_recv($fp,$bffr,128,0)) {
      $gegevens .= $bffr;
      $bffr="";
   } 
   socket_close($fp);

    //Ik neem aan dat dat direct de gegevens zijn die je zoekt 

   $explode = explode(";", $gegevens);
    var_dump($explode);
}
?>

Dat werkt bij mij, ig, het haalt die pagina op. Maar het lijkt er op dat de pagina niet klopt.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Ook te overwegen aangezien het gewoon een comma-seperated file is:

fgetcsv()

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Ik heb ze van alle Nederlandse netwerken ja, maar die ga ik hier niet zomaar posten.
Als je daar gebruik van wilt maken zul je toch echt contact op moeten nemen met de verschillende netwerk-leveranciers, dat ga ik hier niet allemaal voor zitten kauwen...

//edit: bovendien weet ik niet of Concepts-ICT er zo blij mee is dat je pagina's van hun kopieert ;)

[ Voor 18% gewijzigd door man-o-script op 27-02-2004 17:42 ]

//


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben reseller van concepts

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
de zooi hebben ze bij mij zo aangeleverd, mag het verder zelf uitzoeken...

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Dan zou ik geen reseller worden van Concepts-ICT haha
Maar Concepts-ICT heeft zelf geen checker die checkt op de netwerken waar ze op leveren? lijkt me een beetje vreemd...

//


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nou ze hebben me alleen dit gegeven.

Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Dan zou ik klagen en zeggen dat ze wat anders moeten geven :P

maar als je in de source kijkt van supersneladsl.nl dan zie je het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form action="http://eek.concepts.nl/adsl/postcodecheck.pl" method=post target="inhoud">
   <p><br>[img]"./images/lijntje_menu_links.gif"[/img]<br>
    <b>Interesse in ADSL?</b><br>
    <input type="hidden" value="http://www.supersneladsl.nl/dsl_beschikbaar.asp" name="available" target="inhoud"> 
    <input type="hidden" value="http://www.supersneladsl.nl/dsl_nietbeschikbaar.asp" name="notavailable" target="inhoud"> 
    <input type="hidden" value="http://www.supersneladsl.nl/dsl_binnenkort.asp" name="soonavailable" target="inhoud"> 
    <input type="hidden" value="U kunt desgewenst op dezelfde lijn (analoog of ISDN 2) ook de spraakdiensten van KPN Telecom behouden. Oftewel, linesharing is mogelijk in uw regio." name="linesharing">
    <input type="hidden" value="Op dezelfde lijn (analoog of ISDN 2) de spraakdiensten van KPN Telecom behouden is helaas nog niet mogelijk. bbned werkt de komende maanden hard aan deze linesharing optie. Een betrouwbare planning is helaas op dit moment nog niet te geven voor uw regio." name="nolinesharing"> 
    <!input class="postcode" maxLength="4" size="5" name="zipcode">
    <!input class="huisnummer" maxLength="5" size="3" name="housenr">
<br>Postcode:<br>
<input class="postcode" maxLength="4" size="5" name="postcode_cijfers">
<input class="huisnummer" maxLength="2" size="3" name="postcode_letters">
<br>Huisnummer:<br>
<input class="huisnummer" maxLength="5" size="5" name="huisnummer">
<br>Isdn:<br>
<input type="checkbox" name="isdn">
    <input class="vervolg" type=hidden name="vervolgadres" value="http://ict-consultancy.net/postcode/terug.php">
    <input type="image" value="submit" src="./images/pijltje_postcode.gif" width="19" height="17" align="absmiddle" border="0">
 </form>


Misschien dat je daar wat mee kan dan?

//

Pagina: 1