lierom: allow_url_fopen nicht verfügbar

Ich habe folgendes Problem:

auf dem Internetauftritt soll im Footer eine Druckversion verfügbar sein. Da ich die Seiten aber nicht mit window.print() ausdrucken lassen möchte, da dann jedesmal die komplette Seite ausgedruckt wird, habe ich folgende print.php datei geschrieben:

<?php
$location = $_SERVER['QUERY_STRING'];

$fp = fopen("$location", "r");

$content = "";
$flag_content = 0;

while(!feof($fp)) {
  $zeile = fgets($fp, 1000);

ereg ("<title>(.*)</title>", $zeile, $title);

if(ereg("<!-- content-anfang -->", $zeile)) {
    $flag_content = 1;
  }
  elseif(ereg("<!-- content-ende -->", $zeile)) {
    $content .= $zeile; // Letzte Zeile wird noch mitgenommen
    $flag_content = 0;
  }

if ($flag_content) {
    $content .= $zeile;
  }
}
fclose($fp);
?>

und binde diese Variablen nachher wieder so ein:

<title><? echo $title[1];?></title>

und

<body onload="window.print()">
<? echo $content; ?>

Damit sollte der Aufruf von jeder Seite aus möglich sein mit folgendem Aufruf:

<a href="javascript:popup('/print.php?'+document.URL,645,500);">Druckversion</a>

die Javascript-Funktion existiert.

So, nun das Problem:
Auf meinem Testserver lief alles einwandfrei, nur auf dem Server, wo der Internetauftritt später laufen soll, ist allow_url_fopen nicht aktiviert.
Ich denke, dass ich daher dem Skript den absoluten oder relativen Pfad zum aktuellen Dokument übergeben muss, nur wie???

Kann mir da jemand weiterhelfen???
Ich finde keine Lösung!

  1. hi,

    Auf meinem Testserver lief alles einwandfrei, nur auf dem Server, wo der Internetauftritt später laufen soll, ist allow_url_fopen nicht aktiviert.
    Ich denke, dass ich daher dem Skript den absoluten oder relativen Pfad zum aktuellen Dokument übergeben muss, nur wie???

    das problem dürfte noch etwas weiter gehen:
    wenn du die seite _nicht_ über http:// aufrufst, sondern über das lokale dateisystem des servers, bekommst du bei scriptdateien nur den ungeparsten output - und dieser ist vermutlich nicht das, was du drucken möchtest.

    Da ich die Seiten aber nicht mit window.print() ausdrucken lassen möchte, da dann jedesmal die komplette Seite ausgedruckt wird

    hast du dich mal mit der möglichkeit beschäftigt, ein spezielles stylesheet für den druck anzugeben?
    darin könntest du ja seitenbestandteile, die nicht ausgedruckt werden sollen, einfach ausblenden (display:none o.ä.)

    http://de.selfhtml.org/css/formate/einbinden.htm#link_media f.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hi,

    Ich denke, dass ich daher dem Skript den absoluten oder relativen Pfad zum aktuellen Dokument übergeben muss, nur wie???

    Mit parse_url() auftrennen und ggf. mit $_SERVER["DOCUMENT_ROOT"] ergänzen.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Hi,

      @cybaer

      Mit parse_url() auftrennen und ggf. mit $_SERVER["DOCUMENT_ROOT"] ergänzen.

      Könntest du Anhand meines Scriptes ein wenig tiefer ins Detail gehen?

      Verstehe nicht, wo ich das einbauen soll.

      1. Hi,

        Könntest du Anhand meines Scriptes ein wenig tiefer ins Detail gehen?

        $location ist ein URL! Den kann man mit parse_url() in seine Bestandteile zerlegen. Einer dieser Bestandteile ist die angeforderte Datei. In DOCUMENT_ROOT ist der serverinterne Pfad zur HTTP-Rootebene. Daran den mit pars_url() ermittelten Filenamen angehängt, ergibt den Dateinamen inkl. des absoluten (internen) Pfads, mit dem PHP nun direkt zugreifen kann.

        Das PHP-Manual informiert Dich über Details.

        Verstehe nicht, wo ich das einbauen soll.

        Vorzugsweise direkt nach $location= und vor fopen()! =;-)

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!