[PHP] Einstieg in die Web-Entwicklung

  • [PHP] Einstieg in die Web-Entwicklung

    Guten Tag,

    Ich müsste eine Website parsen, auf die ich so direkt vom Backend keinen Zugriff habe. Es geht also nur darum, ein Script zu schreiben (php) welches dann das parsing der hauptsächlich HTML-Tabellen übernimmt und diese mit JSON ans iPhone ausgibt.

    Ich habe paar Fragen zu Servern usw...

    Ich habe keinen Server, sondern nur Webspace von Loomes. Darauf läuft auch meine Homepage. Kann ich da einfach das php-Zeug hintun, dann vom iPhone halt im Request aufrufen und die Daten empfangen?

    Oder braucht man dafür einen Server athome oder sowas?
    Gruß

    Robin
  • gritsch schrieb:

    viele hoster haben das laden externen contents gesperrt!
    Einige Hoster (kann nicht sagen, ob »viele« es trifft) haben in der Tat aus Sicherheitsgründen allow_url_fopen deaktiviert, aber es hindert einen ja niemand daran, Zend_Http_Client, HTTP_Request2 oder irgendwas Äquivalentes zu nehmen.

    Carsten
  • so, habe es jetzt so probiert:

    PHP-Quellcode

    1. <?php
    2. $filestream = fopen("http://forum.developers-guide.net", "r");
    3. while(!feof($filestream)) {
    4. $buffer = fgets($filestream, 4096);
    5. echo $buffer;
    6. }
    7. fclose($filestream);
    8. ?>


    Und da kommen lauter error-meldungen... daher gehe ich davon aus, dass dieser Webhoster es nicht erlaubt, richtig?

    "Warning: fopen()fileAccess is disabled in this server-configuration"
    Gruß

    Robin
  • BlueM schrieb:

    gritsch schrieb:

    viele hoster haben das laden externen contents gesperrt!
    Einige Hoster (kann nicht sagen, ob »viele« es trifft) haben in der Tat aus Sicherheitsgründen allow_url_fopen deaktiviert, aber es hindert einen ja niemand daran, Zend_Http_Client, HTTP_Request2 oder irgendwas Äquivalentes zu nehmen.

    Carsten


    meist sind diese aber auch deaktiviert bzw nichtmal installiert (nur meine erfahrung)
  • robin_ schrieb:

    Und da kommen lauter error-meldungen... daher gehe ich davon aus, dass dieser Webhoster es nicht erlaubt, richtig?

    "Warning: fopen()fileAccess is disabled in this server-configuration"
    Korrekt. BTW: Die performanteste Art, eine Datei zu laden, ist file_get_contents().

    Sprich: Du brauchst eine Userland-HTTP-Client-Implementierung. Zwei Möglichkeiten habe ich ja schon genannt, aber es gibt sicher zahllose weitere im Web.

    Carsten
  • gritsch schrieb:

    BlueM schrieb:

    gritsch schrieb:

    viele hoster haben das laden externen contents gesperrt!
    Einige Hoster (kann nicht sagen, ob »viele« es trifft) haben in der Tat aus Sicherheitsgründen allow_url_fopen deaktiviert, aber es hindert einen ja niemand daran, Zend_Http_Client, HTTP_Request2 oder irgendwas Äquivalentes zu nehmen.

    Carsten


    meist sind diese aber auch deaktiviert bzw nichtmal installiert (nur meine erfahrung)
    Mag sein, aber es stellt ja kein Problem dar, sich seine eigene Installation von Zend Framework, Symfony Components, PEAR oder was auch immer auf den Server zu schieben.

    Carsten
  • Korrekt. BTW: Die performanteste Art, eine Datei zu laden, ist file_get_contents().


    eher curl – curl ist aber viel schneller als file_get_contents().

    @Robin: du kannst doch Symfony2 etc. auf Webspace kopieren über FTP.

    Mach ein Skript mit <?php phpinfo() ?> drauf und dann weisst du, wie dein Webserver so konfiguriert ist.
    Schau nach, ob curl installiert ist. Wenn ja, dann verwende es:

    de.php.net/curl
    Aus macfreakz wurde Apfelbeisser …
  • Also, danke für die antworten...

    also, hier mal das Script:

    robin-heitz.de/info.php

    Php ist neu für mich, daher bin ich gerade noch dabei, mir das anzueignen.

    Aber eine Frage, neben dem Server-Gedönse habe ich noch:

    Wenn ich 1 PHP-Script habe, kann ich dann irgendwie vom Browser aus 2 unterschiedliche functionen ausführen? Ne oder? Ich müsste dann etwa einen "mode" mit übergeben und dann mit Fallunterscheidung gucken, wenn mode=="ersterMode" {} oder?

    Man kann nicht direkt functions aufrufen?
    Gruß

    Robin
  • curl ist aktiviert ... perfekt! Du kannst curl benutzen.

    Ja, über GET-Request kannst du das ganze steuern (PHP hat hier globale Variable dafür $_GET, für POST Requests => $_POST, ...).
    Aber übergib niemals $_GET Variable direkt in einer SQL Abfrage (SQL Injection) ... $_GET Variablen sind IMMER gefährlich!!!

    Guter Einstieg: phptherightway.com
    Aus macfreakz wurde Apfelbeisser …
  • @zerm: Ja ... PHP ist einfach furchtbar ... :) aber ziemlich tolerant ... so dass so viele Webprojekte damit erfolgreich laufen dürfen :)
    Kannst du einfach loslegen ... es geht einfach nur um die Umsetzung deiner Ideen ... was dahinter passiert, ist doch wurscht ... bis du echte
    Herausforderungen kriegst wegen dem Traffic ... dann musst du dir was überlegen: Migration nach scala/java (hauptsache jvm) oder PHP Compiler nach C++ bauen (bei facebook HipHop)
    Aus macfreakz wurde Apfelbeisser …
  • Jaja, phpinfo kommt bald wieder raus, ich kenne mich damit nicht wirklich aus bisher, daher wollte ich, dass ihr drüber guckt.
    Also, curl klappt ja anscheinend.
    Dann werde ich mal gucken was curl ist (php immer noch, oder eigene sprache? Ich meine eine Lib oder?)


    Ja, das mit dem Post und Get habe ich in meinem Tutorial schon:)
    bin mir noch unschlüssig, aber ich könnte rein theoretisch für den Mode get nehmen oder? Auf sicherheit kommt es nicht an, die Website meiner Schule, die die Daten ja bereitstellt, ist so sicher wie ein Schuhkarton als Tresor....
    Gruß

    Robin
  • Also, ich habe es jetzt mal mit curl probiert:

    Quellcode

    1. $ch = curl_init();
    2. curl_setopt($ch, CURLOPT_URL, 'www.google.de');
    3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    4. $contents = curl_exec ($ch);
    5. curl_close ($ch);


    und mit echo wird dann wie website abgebildet, also klappt das schonmal


    //EDIT: Habe jetzt schonmal was geparsed bekommen, klappt soweit. Wenn ich vom iPhone aus, das geparste bekommen möchte (JSON, XML etc.) wie muss ich das in php ausgeben? mit echo?
    ich möchte es halt bekommen bei der NSURLConnection, wenn ich den Post-Buddy angegeben habe (Parameter) und dann würde ich gerne dann die Daten zurück bekommen

    //EDIT2: Ich weiß jetzt wie das geht, bin eigentlich durch mit den Fragen:) mit echo und vorher in json encoden klappts prima!
    Gruß

    Robin

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von robin_ ()

  • Mh, doch noch eine Frage, und zwar wegen Variablen und dem Scope derer...

    Ich habe so ein Konstrukt:

    if (modus==einModus) {
    $eineVar = 0;
    }

    else if (modus==zweiModus) {

    }

    Wenn ich jetzt im zweiten if, also wo auf "zweiModus" verglichen wird, eine neue Variable anlegen möchte, und ich $eine eingebe, dann will er auf $eineVar vervollständigen... aber die habe ich doch nur in der if dekliniert, wie kann er die in der elseif kennen?
    Gruß

    Robin