php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-09-2003, 18:10
digidog
 Newbie
Links : Onlinestatus : digidog ist offline
Registriert seit: Aug 2003
Ort: ::: IRGENDWO IN DER MATRIX :::
Beiträge: 9
digidog ist zur Zeit noch ein unbeschriebenes Blatt
Standard htmlentities() erzeugt fehlerhafte "1"

Hi

Ganz liebe Grüße von einem verzweifelten PHP Newbie,

Ich bin seid 2 MOnaten dabei PHP auf die Schliche zu kommen um es für mich endgültig abzurunden. HTML, JS, AS und CSS stellen für mich kein Problem mehr dar, aber diese gelten ja auch nicht als Programmiersprachen, somit ist PHP schon Neuland. Templates und if Schleifen oder Formular Systeme sind alle schon geübt und im Einsatz. Nur habe ich jetzt ein Problem wo ich den Wald vor lauter Bäumen nicht seh, oder das Problem eventl. garnicht bei PHP liegt ?! Das wollte ich mit eurer Hilfe prüfen:

<?php

$info = ("./info.txt");

//ASCII Text aus Simpletext Mac

echo htmlentities($info, ENT_QUOTES, ISO-8859-1);

//konvertiert Sonderzeichen
//sofern diese im Textfile richtig ausgewiesen sind (Filetype, //Creatortype oder Texttype)

?>

Ergebnis:

Der Inhalt von info.txt wird richtig konvertiert (ACHTUNG: Bei BBedit kann sich ein Save-Fehler einschleichen. Am sichersten fährt man wenn Text mit Sonderzeichen in Simpletext geschrieben wird.), Aber am Ende der Ausgabe erscheint eine Eins. Diese Eins ist nach ausgiebiger Prüfung nicht durch unsichtbare Zeichen im info.txt erzeugt worden sondern durch das htmlentities() scriptfile.

z.B.: >Hallöle> wird als >Hallöle>1 ausgegeben. Woher kommt die Eins?? Ichbin ratlos. Bitte macht Vorschläge, mögen sie auch noch so unwahrscheinlich sein. Der Fehler kann überall liegen, vielleicht soger beim Server selbst, oder??

Liebe Grüsse, DigiDogX
__________________
Der Kurzschluss der Wissenschaft:
Die Wirklichkeit ist nichts als die Übereinstimmung ihrer subjektiven Zeugen. Die Wahrheit ist auch nur ein anderer Begriff für den Versuch etwas relatives als definitiv zu behaupten!
Mit Zitat antworten
  #2 (permalink)  
Alt 13-09-2003, 18:14
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

evt solltest Du das ISO-8859-1 mal in quotes setzen
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #3 (permalink)  
Alt 13-09-2003, 18:21
digidog
 Newbie
Links : Onlinestatus : digidog ist offline
Registriert seit: Aug 2003
Ort: ::: IRGENDWO IN DER MATRIX :::
Beiträge: 9
digidog ist zur Zeit noch ein unbeschriebenes Blatt
Standard

oh mann, danke dass mal jemand ne idee einwirft
hab ich direkt gleich mal ausprobiert, - leider fehlanzeige, immernoch die 1.

Irgendwie sehr merkwürdig. hab auch schon die variablen namen geändert und alles weggeschmissen und neu geschrieben, in verschiedenen Text Editoren- Die Eins ist immer da. Wollte statt der variabe §info den text auch direkt ins script einbinden, aber das geht nicht, weil es eine php datei ist und die darf keine Sonderzeichen enthalten. Würde nur kauderwelksch rauskommen.

Trotzdem aber Lieben Dank, noch ein paar andere ideen????
Raus damit, ich will sie alle!!!!!


Liebe Grüße
__________________
Der Kurzschluss der Wissenschaft:
Die Wirklichkeit ist nichts als die Übereinstimmung ihrer subjektiven Zeugen. Die Wahrheit ist auch nur ein anderer Begriff für den Versuch etwas relatives als definitiv zu behaupten!
Mit Zitat antworten
  #4 (permalink)  
Alt 13-09-2003, 18:25
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also das ISO muss auf jeden fall in quotes
was willst Du eigentlich mit dieser Zeile bewirken:
$info = ("./info.txt");
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #5 (permalink)  
Alt 13-09-2003, 18:28
digidog
 Newbie
Links : Onlinestatus : digidog ist offline
Registriert seit: Aug 2003
Ort: ::: IRGENDWO IN DER MATRIX :::
Beiträge: 9
digidog ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ähm,

na das ein text aus einer externen datei in eine variable geladen wird, damit ich diese dann als zu behandelnde variable der funktion echo htmlentities() zu ordnen kann.
__________________
Der Kurzschluss der Wissenschaft:
Die Wirklichkeit ist nichts als die Übereinstimmung ihrer subjektiven Zeugen. Die Wahrheit ist auch nur ein anderer Begriff für den Versuch etwas relatives als definitiv zu behaupten!
Mit Zitat antworten
  #6 (permalink)  
Alt 13-09-2003, 18:30
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also damit weist Du der variablen aber nicht den Inhalt der Datei zu sondern nur den dateinamen...
wenn Du den Inhalt willst musst Du fopen, fread, fclose oder file benutzen
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #7 (permalink)  
Alt 13-09-2003, 18:36
digidog
 Newbie
Links : Onlinestatus : digidog ist offline
Registriert seit: Aug 2003
Ort: ::: IRGENDWO IN DER MATRIX :::
Beiträge: 9
digidog ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aaaaah Ich glaub, ich ahne meinen Denkfehler

include() ist ja für das Einbetten von Dateien und nicht für das Zuordnen zu Variablen geeignet. Oh Gott klar - sorry!

Gut das kann ein wenig dauern, denn fopen() ist noch frisch für mich. Ich versuchs mal und poste es hier, ok? Dank dir nochmal .....

bis später....
__________________
Der Kurzschluss der Wissenschaft:
Die Wirklichkeit ist nichts als die Übereinstimmung ihrer subjektiven Zeugen. Die Wahrheit ist auch nur ein anderer Begriff für den Versuch etwas relatives als definitiv zu behaupten!

Geändert von digidog (13-09-2003 um 18:38 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 14-09-2003, 00:39
digidog
 Newbie
Links : Onlinestatus : digidog ist offline
Registriert seit: Aug 2003
Ort: ::: IRGENDWO IN DER MATRIX :::
Beiträge: 9
digidog ist zur Zeit noch ein unbeschriebenes Blatt
Standard

<?php
$path = fopen("info.txt", r);
$info = fgets($path, 200);
echo htmlentities($info, ENT_QUOTES, ISO-8859-1);
fclose($path);
?>

so funktioniert es. nun ist noch die Frage wie ich das als filter für viele Dateien benutzen kann ohne für jedes txt File das skript zu kopieren.

Aber das ist ein neues thread.... Vielen Dank nochmal für Rat und Tat
__________________
Der Kurzschluss der Wissenschaft:
Die Wirklichkeit ist nichts als die Übereinstimmung ihrer subjektiven Zeugen. Die Wahrheit ist auch nur ein anderer Begriff für den Versuch etwas relatives als definitiv zu behaupten!
Mit Zitat antworten
  #9 (permalink)  
Alt 14-09-2003, 00:45
Samson2k
 Junior Member
Links : Onlinestatus : Samson2k ist offline
Registriert seit: Jun 2003
Ort: Nähe Heidelberg
Beiträge: 234
Samson2k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

$file = $_GET['file'];
$path = fopen($file, r);

[für das brauch man keine PHP-Tags *ggg*]

Jetzt rufst du das Script einfach so auf:
scriptname.php?file=dein-textfile.txt

Und schon funktioniert das ganze super...
__________________
Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
(Albert Einstein)
Mit Zitat antworten
  #10 (permalink)  
Alt 14-09-2003, 00:56
digidog
 Newbie
Links : Onlinestatus : digidog ist offline
Registriert seit: Aug 2003
Ort: ::: IRGENDWO IN DER MATRIX :::
Beiträge: 9
digidog ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hey samson, dank dir du hilfst einem Newbie echt auf die Sprünge.
kann ich dich noch etwas fragen?? Das ganze ist für ein News Template gedacht und ich wollte in den Flash News den angerissenen text mit dem Button "...mehr" dahinter der auf den ganzen Text linkt. Und das als Template für alle Artiklel. quasi so:

blablablablabla
blablablablabla
blablablabl...mehr

blablablablabla
blablablablabla
blablablabl...mehr


Desegen hab ich auch fgets() zum abschneiden des TExtes benutzt. Das mit
$file = $_GET['file'];
$path = fopen($file, r);

macht Sinn aber wie generiere ich das ...mehr über PHP?? quasi als link??
Kannst du mir da nochmal einen Newbie-Denkanstoß geben???
__________________
Der Kurzschluss der Wissenschaft:
Die Wirklichkeit ist nichts als die Übereinstimmung ihrer subjektiven Zeugen. Die Wahrheit ist auch nur ein anderer Begriff für den Versuch etwas relatives als definitiv zu behaupten!
Mit Zitat antworten
  #11 (permalink)  
Alt 14-09-2003, 01:13
Samson2k
 Junior Member
Links : Onlinestatus : Samson2k ist offline
Registriert seit: Jun 2003
Ort: Nähe Heidelberg
Beiträge: 234
Samson2k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da hilft dir die Funktion substr() (siehe Manual).

Aber Achtung mit dem $file = $_GET['file']; du solltest eine Prüfung einbaun (z.b. sollte der Dateiname immer mit txt Enden und nicht länger als 20 Zeichen sein). Somit überprüfst du erst ein wenig bevor du wahllos eine Datei aufrufst. Sonst könnte ja jemand einfach ne php Datei anzeigen lassen und deinen Quelltext klauen.

Dateiendungen kannst du einfach herausbekommen:
Erst schaun wie lang der String is dann einfach die letzten drei Zeichen auswählen (endung =länge - 3 und dann einfach alles ab endung anzeigen lassen) ab dem und vergleichen. Is ne gute Übung am Anfang. *ggg*
__________________
Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
(Albert Einstein)
Mit Zitat antworten
  #12 (permalink)  
Alt 14-09-2003, 01:32
digidog
 Newbie
Links : Onlinestatus : digidog ist offline
Registriert seit: Aug 2003
Ort: ::: IRGENDWO IN DER MATRIX :::
Beiträge: 9
digidog ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hm, substr() kenn ich. Damit hab ich schon gearbeitet aber das mit $_GET gibt mir Rätsle auf. Ich hab es eins zu eins so probiert und es funktioniert nicht.

FileA, news.php

<html>.....
PHP-Code:
include("umlaut.php?file=info.txt"); 
.....</html>

FileB, umlaut.php

PHP-Code:
$file $_GET['file'];
$path fopen($filer);
$info fgets($path200);
echo 
htmlentities($infoENT_QUOTESISO-8859-1);
fclose($path);
//hier fehlt noch der link zum Volltext  über 200 Bytes hinaus 
FileC, imfo.txt

Text mit Sonderzeichen.....



Bin jetzt völlig verwirrt da ich inner switch weiche doch auch kein $_GET brauche....
__________________
Der Kurzschluss der Wissenschaft:
Die Wirklichkeit ist nichts als die Übereinstimmung ihrer subjektiven Zeugen. Die Wahrheit ist auch nur ein anderer Begriff für den Versuch etwas relatives als definitiv zu behaupten!
Mit Zitat antworten
  #13 (permalink)  
Alt 14-09-2003, 01:40
Samson2k
 Junior Member
Links : Onlinestatus : Samson2k ist offline
Registriert seit: Jun 2003
Ort: Nähe Heidelberg
Beiträge: 234
Samson2k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

include("umlaut.php?file=info.txt");
ist falsch. Du kannst keine Variablen per include übergeben...
Du musst in umlaut.php ne funktion machen die du dann aufrust, dann gehts.
__________________
Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
(Albert Einstein)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:25 Uhr.