und PHP: include einer HTML-Datei funktioniert nicht...
Tobi
- javascript
Hallo,
ich include eine HTML-Seite in ein Javascript.
Leider funktioniert dies nur, solange keine einfachen Anführungszeichen in der HTML-Datei vorkommen
und die HTML-Seite aus nur einer - wenn auch sehr langen - Zeile besteht.
1. Wie kann ich eine Datei mit einfachen Anführungszeichen includen?
2. Wie kann ich in Javascript einen Text über mehrere Zeilen einer Variablen zuordnen, damit ich nicht die HTML-Seite in einer Zeile erstellen muß.
3. Existiert einen PHP-Befehl, der aus mehreren HTML-Zeilen einen Einzeiler macht?
MfG.
Tobi
datei.php:
-------------------------------------------
...
<html>
<head>
...
<script language="JavaScript">
<!--
...
var htmlseite=''
htmlseite='<?php addslashes(include 'test.html'); ?>'
...
//-->
</script>
</head>
<body onLoad='start()'>
...
</body>
</html>
test-orginal.html: (funktioniert nicht)
-------------------------------------------
Dies ist ein Test.<br />
<img src="http://www.meinedomain.de/grafik.jpg" border="0" alt="test" width="100" height="100" />
<hr size="2" />
<p>
Ein Link:
<a href="http://www.google.de" target="_blank"
onMouseOver="window.status='Suchdienst'; return true; "
onMouseOut="window.status=''; return true; ">klick mich
</a></p>
test.html: (funktioniert)
-------------------------------------------
Dies ist ein Test.<br /><img src="http://www.meinedomain.de/grafik.jpg" border="0" alt="test" width="100" height="100" /><hr size="2" /><p>Ein Link: <a href="http://www.google.de" target="_blank">klick mich</a></p>
Hallo Tobi.
htmlseite='[code lang=php]<?php addslashes(include 'test.html'); ?>
'[/code]
AFAIK solltest du die zu inkludierende datei ebenfalls in () setzen.
Ein Link:
<a href="http://www.google.de" target="_blank" onMouseOver="window.status='Suchdienst'; return true; " onMouseOut="window.status=''; return true; ">klick mich </a></p>
Bitte folgendes streichen oder ändern:
Danke.
Gruß, Ashura
hi,
htmlseite='[code lang=php]<?php addslashes(include 'test.html'); ?>
'[/code]
ernst gemeint?
gruß,
wahsaga
Hallo wahsaga.
ernst gemeint?
Woher soll ich das wissen? Es ist nur ein Zitat.
Gruß, Ashura
hi,
ernst gemeint?
Woher soll ich das wissen? Es ist nur ein Zitat.
ach so, tschuldige, das hatte ich nicht übersehen.
hatte mir seinen code gar nicht mehr genauer angesehen, weil mir die konzeptbeschreibung schon zu abwegig erschien.
gruß,
wahsaga
htmlseite='[code lang=php]<?php addslashes(include "test.html"); ?>
'[/code]
ernst gemeint?
ja. (korrigiert)
hi,
htmlseite='[code lang=php]<?php addslashes(include "test.html"); ?>
'[/code]ernst gemeint?
ja. (korrigiert)
ernst gemeint?
(weißt du, was addslashes() als argument erwartet?)
gruß,
wahsaga
Hallo Ashura,
htmlseite='[code lang=php]<?php addslashes(include 'test.html'); ?>
'[/code]
AFAIK solltest du die zu inkludierende datei ebenfalls in () setzen.
include ist ein Sprachkonstrukt und keine Funktion - es sind also keine Klammern notwendig (auch in der Doku sind keine Klammern gesetzt)
- title Attribut hinzufügen
warum?
Grüße aus Nürnberg
Tobias
Hallo Tobias.
- title Attribut hinzufügen
warum?
Weil eine nähere Beschreibung des Zieles eines Links meiner Meinung nach sehr zuvorkommend ist.
Die Informationen in der Statusleiste sind öfters einfach ungenügend und verwehren somit die vorzeitige Entscheidung, ob man den Link denn klicken möchte oder nicht.
Gruß, Ashura
Hallo Ashura,
- title Attribut hinzufügen
warum?
Weil eine nähere Beschreibung des Zieles eines Links meiner Meinung nach sehr zuvorkommend ist.
der Linktext sollte eigentlich das Zeil des Linkes ausreichend beschreiben - auf das was im title-Attribut eines Linkes achte ich eigentlich nie ...
Die Informationen in der Statusleiste sind öfters einfach ungenügend
was ist an "http://www.google.de" nicht aussagekräftig? :-)
Grüße aus Nürnberg
Tobias
Hallo Tobias.
der Linktext sollte eigentlich das Zeil des Linkes ausreichend beschreiben - auf das was im title-Attribut eines Linkes achte ich eigentlich nie ...
Du sagst es bereits - _sollte_...
Doch es kommt öfters vor, dass der Linktext einfach nicht genug über den Inhalt aussagt / aussagen kann (niemand verlinkt einen Satz in der Navigation).
In solchen Fällen ist das title Attribut geradezu vorzüglich geeignet, um diesen Mangel auszugleichen.
was ist an "http://www.google.de" nicht aussagekräftig? :-)
Das ist das andere Extrem. Begriffe wie "Google" und "googlen" sind landläufig so weit verbreitet, dass man weiß, was sich dahinter verbirgt, auch wenn man noch niemals in seinem Leben im Internet gewesen ist.
Gruß, Ashura
Hi,
AFAIK solltest du die zu inkludierende datei ebenfalls in () setzen.
probier ich mal
Bitte folgendes streichen oder ändern: ...
ich will in der HTML-Datei nicht streichen.
MfG.
Tobi
hi,
ich include eine HTML-Seite in ein Javascript.
das ist murks.
Leider funktioniert dies nur, solange keine einfachen Anführungszeichen in der HTML-Datei vorkommen
und die HTML-Seite aus nur einer - wenn auch sehr langen - Zeile besteht.
natürlich.
das überrascht dich jetzt aber hoffentlich nicht, sondern war dir bereits vorher klar?
- Wie kann ich eine Datei mit einfachen Anführungszeichen includen?
stichwort "sonderzeichen maskieren", oder auch "escapen".
aber nein, dass geht per simplem include nicht so ohne weiteres - da müsstest du dir die datei erst mal in PHP einlesen, in einen string o.ä., den du dann weiter bearbeiten kannst, bevor du ihn ausgibst. schau dir im manual die seite mit den dateifunktionen an.
- Wie kann ich in Javascript einen Text über mehrere Zeilen einer Variablen zuordnen, damit ich nicht die HTML-Seite in einer Zeile erstellen muß.
var test = 'eine zeile';
text .= 'noch eine zeile';
...
- Existiert einen PHP-Befehl, der aus mehreren HTML-Zeilen einen Einzeiler macht?
nein, nicht für jedes triviale problem existieren vorgefertigte funktionen.
schau dich bei den stringfunktionen von PHP um, welche das von dir gewünschte bewerkstelligen könnte, nachdem du die datei wie unter 1. beschrieben erst mal in einen string eingelesen hast.
gruß,
wahsaga
Hallo wahsaga,
var test = 'eine zeile';
text .= 'noch eine zeile';
nachdem es sich um Javascript handelt wohl eher:
text += 'noch eine zeile';
alternativ könnte man die Zeilenumbrüche auch mit einem \ maskieren.
Grüße aus Nürnberg
Tobias
hi,
text .= 'noch eine zeile';
nachdem es sich um Javascript handelt wohl eher:
text += 'noch eine zeile';
ay caramba :-) danke für die korrektur
alternativ könnte man die Zeilenumbrüche auch mit einem \ maskieren.
ja, ebenfalls möglich.
aber auch das kommt nicht ohne vorheriges einlesen der datei aus, ein include alleine reicht nicht. (es sei denn, man manipuliert schon vorher die eingebundene datei entsprechend.)
gruß,
wahsaga
Hi,
das ist murks.
warum?
mein Aufbau:
Die php-Datei enthält HTML und Javascript.
Der Javascript-variable soll der Inhalt einer HTML-Datei zugewiesen werden.
das überrascht dich jetzt aber hoffentlich nicht ...
überrascht nicht.
stichwort "sonderzeichen maskieren", oder auch "escapen".
u.a. addslashes probiert ... :(
... schau dir im manual die seite mit den dateifunktionen an.
sehe ich mir noch an ...
var test = 'eine zeile';
text .= 'noch eine zeile';
...
ich dachte ursprünglich an print<<HTML ... HTML, q, qq oder änliches
MfG.
Tobi
also du kannst mit php über:
$datei=fopen("test.html", "r");
$htmlcodeamstück = "";
while(!feof($datei)){
$htmlcodeamstück = $htmlcodeamstück.fgets($datei, 1000);
}
den code in eine reihe schreiben
mit fgets liest du zeilen weise, bei diesem bsp kann die zeile aus 1000 zeichen besten zeilen umbruch \n erkennt er automatisch und hört dann auf.
Hoffe ich konnt dir so weiterhelfen