Function um HTML-Code zu bekommen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Xalon

Betreff: Function um HTML-Code zu bekommen

BeitragSa, Mai 07, 2005 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,hier eine Function die einen HTML-Code anfordertBlitzBasic: [AUSKLAPPEN]
;gethtml(url,script,port,dateiname)


; url: Host auf dem die datei liegt

; script: Datei(auch mit Pfad)die angefordert wird

; port: Port AUF den gesendet wird

;dateiname: Name der Datei in den die daten geschrieben werden sollen,bei PRINT wird auf dem Monitor geschrieben


Function gethtml(url$,script$=\"index.html\",port=80,datei_name$=\"NIX\")

If datei_name = \"NIX\" Or \"PRINT\"
to_write=0

Else
datei = WriteFile(datei_name)
to_write=1

EndIf

If datei_name = \"PRINT\" to_write=2



tcp=OpenTCPStream(url,port)

WriteLine tcp,\"GET /\"+script+\" HTTP/1.1\"
WriteLine tcp,\"Host: \"+url
WriteLine tcp,\"User-Agent: score\"
WriteLine tcp,\"Accept: */*\"
WriteLine tcp,\"\"



Select to_write

Case 1
Repeat
WriteLine datei,ReadLine(tcp)
Until Eof(tcp)
;
Case 2
Repeat
Print ReadLine(tcp)
Until Eof(tcp)


End Select



End Function


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




Beispielaufruf:
BlitzBasic: [AUSKLAPPEN]
gethtml(\"blitzforum.de\",\"viewtopic.php?t=11196\",80,\"des.html\")



und um ein PHP script aufzurufen,in dem die Variablen nicht mittels URL übertragen werden(NOCH UNGETESTET)





BlitzBasic: [AUSKLAPPEN]
;getphp(url,script,port,data_to_send,dateiname)

; url: Host auf dem die datei liegt

; script: Datei(auch mit Pfad)die angefordert wird

; port: Port AUF den gesendet wird

;data_to_send: Variablen die zu übertragen sind in Form von:[variable1=wert1][&Variable2=Wert2][&etc.]

; dateiname: Name der Datei in den die daten geschrieben werden sollen,bei PRINT wird auf dem Monitor geschrieben













Function getphp(url$,script$,port,data_to_send$,datei_name$=\"NIX\")

If datei_name = \"NIX\" Or \"PRINT\"
to_write=0

Else
datei = WriteFile(datei_name)
to_write=1

EndIf

If datei_name = \"PRINT\" to_write=2



tcp=OpenTCPStream(url,port)

WriteLine tcp,\"POST /\"+script+\" HTTP/1.1\"
WriteLine tcp,\"Host: \"+url
WriteLine tcp,\"Content-type: application/x-www-form-urlencoded\"
WriteLine tcp,\"Content-length: \"+Len(data_to_send)
WriteLine tcp,data_to_send
WriteLine tcp,\"User-Agent: score\"
WriteLine tcp,\"Accept: */*\"
WriteLine tcp,\"\"



Select to_write

Case 1
Repeat
WriteLine datei,ReadLine(tcp)
Until Eof(tcp)
;
Case 2
Repeat
Print ReadLine(tcp)
Until Eof(tcp)


End Select



End Function


Da ungetestet also auch kein Beispiuelaufruf.


NOCH FRAGEN?Dann schickt mir einfach eine PN oder schreibt hier.

Xalon
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image
 

CodeMaster

BeitragSa, Mai 07, 2005 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab zwar die Funktionalität nicht getestet, bin aber mal durch den Code gegangen und dabei sind mir folgende Sachen aufgefallen:
  1. In beiden Funktionen öffnest du Dateien, schließt sie aber am Ende nicht mehr.

  2. Die If-KonstruktionCode: [AUSKLAPPEN]
    If datei_name = "NIX" Or "PRINT"
    funktioniert nicht. BB interpretiert es alsCode: [AUSKLAPPEN]
    If datei_name = ("NIX" Or "PRINT")
    Schreib es am besten so um:Code: [AUSKLAPPEN]
    If (datei_name = "NIX") Or (datei_name = "PRINT")

  3. Ich finde es unschön, die URL in so viele Parameter zerstückeln zu müssen, um die Funktion aufrufen zu können. Könntest du die kompakte URL nicht in der Funktion selbst zerstückeln? (*)

  4. Du öffnest in beiden Funktionen blauäugig einen TCP-Stream. Was, wenn keine Internetverbindung besteht? Dann stürzt das Programm ab Confused Frag lieber erst ab, bevor du in den Stream schreibst oder aus ihm liest:Code: [AUSKLAPPEN]
     tcp=OpenTCPStream(url,port)
     if tcp then
      WriteLine tcp,"POST /"+script+" HTTP/1.1"
      WriteLine tcp,"Host: "+url
      WriteLine tcp,"Content-type: application/x-www-form-urlencoded"
      WriteLine tcp,"Content-length: "+Len(data_to_send)
      WriteLine tcp,data_to_send
      WriteLine tcp,"User-Agent: score"
      WriteLine tcp,"Accept: */*"
      WriteLine tcp,""
     endif


  5. Auch hier wieder: Wenn du einen Stream öffnest, musst du ihn am Ende auch wieder schließen.


Hab ich was vergessen? Wink




(*): Ich hab mich mal drangesetzt und versucht, eine komplette URL in ihre Einzelteile zu zerlegen. Habs in der Eile nicht fertig gekriegt, es ist aber eigentlich zu schaffen!
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102
 

noir

BeitragSa, Mai 07, 2005 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
darf ich fragen was das jetzt bitte bringt?
wurde schon sooft erklärt ...?
und z.b bruZard hatte zu diesem Thema schon ein Tutorial geschrieben
Fragt und man wird euch helfen

Das Alternativ BlitzBasic-Forum: FreeCoder
Einfach chatten: BlitzChat
Code&Text schnell und einfach pasten: FreePasting
 

CodeMaster

BeitragSa, Mai 07, 2005 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Na ja, ich schätze, so direkt bringen tut das nix. Aber Leutchen, die davon noch keine Ahnung haben und vielleicht ne online-Highscoreliste oder gar einen Textbrowser proggen wollen, könnten ja Teile des Codes adoptieren...
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102

Xalon

BeitragSa, Mai 07, 2005 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
CodeMaster hat Folgendes geschrieben:
Na ja, ich schätze, so direkt bringen tut das nix. Aber Leutchen, die davon noch keine Ahnung haben und vielleicht ne online-Highscoreliste oder gar einen Textbrowser proggen wollen, könnten ja Teile des Codes adoptieren...

Danke,der cOde is eben für diese n00bs...

Xalon

P.S.:Keiner muss den Code Verwenden -.-
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image
 

noir

BeitragSa, Mai 07, 2005 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
CodeMaster hat Folgendes geschrieben:
Na ja, ich schätze, so direkt bringen tut das nix. Aber Leutchen, die davon noch keine Ahnung haben und vielleicht ne online-Highscoreliste oder gar einen Textbrowser proggen wollen, könnten ja Teile des Codes adoptieren...



du triffst es auf den kopf. wenn dann könnte er das ins FAQ posten.. auch wenn da ja schon was von Bruzard ist, aber fürs codarchiv ist es nicht geeignet (meine bescheidene Meinung Wink )
Fragt und man wird euch helfen

Das Alternativ BlitzBasic-Forum: FreeCoder
Einfach chatten: BlitzChat
Code&Text schnell und einfach pasten: FreePasting

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group