allow_url_fopen nicht verfügbar
lierom
- php
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!
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
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
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.
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