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
  #31 (permalink)  
Alt 07-07-2009, 21:12
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Bleiben wir mal bei dem vorhandenen:

Direktausgabe (bekannt)
PHP-Code:
 <?php
$img 
imagecreatefromjpeg($imgname);
header('Content-Type: image/jpg');
imagejpeg($img);
?>
Was'n Unfug. Wieso lässt du die Bilddaten über die GD-Lib-Funktionen laufen? Das verbrät nur unnötig Speicher und Rechenzeit, und falls die Abmessungen zu groß sind, um per GD-Lib in den Hauptspeicher geladen zu werden, bekommst du noch die "Out-of-Memory"-Meldung inklusive Scriptabbruch. Schau dir mal readfile() an. Das leidet unter keiner dieser Limitierungen.

Zitat:
Beim Einsatz von Templateengine weist man die Inhalte zu und gibt Sie dann an der gewünschten Stelle aus.
PHP-Code:
$img imagecreatefromjpeg($imgname);
imagejpeg($img);
$out ob_get_contents();
ob_end_clean();
$tpl->assign('bild1',$sout); 
Im Inhalt sprich Template setzte man dann z.B.
PHP-Code:

 header
('Content-Type: image/jpg');
echo 
$tpl->VARS['bild1']; 
Schau mal, das geht auch in 3 Zeilen und ganz ohne unnötiges Output-Buffering:
PHP-Code:
$tpl->assign('bild1'file_get_contents($imgname));
header('Content-Type: image/jpg');
echo 
$pl->VARS['bild1']; 
Ich würde aber die Variante mit readfile() vorziehen, weil die nicht den Umweg über eine PHP-String-Variable geht und somit auch nicht vom Memory-Limit abhängig ist.

Zitat:
Damit ist der Code von der Ausgabe getrennt.

Was auch immer man im Code anstellt ist für die Ausgabe und deren Gestaltung unineteressant.

Das war das simple Prinzip einer Templateengine.
Das glaubst du.

Google doch einmal nach "presentation logic" und "business logic" und vergiss "Code" und "Gestaltung" lieber wieder.
Mit Zitat antworten
  #32 (permalink)  
Alt 07-07-2009, 21:49
piratos
 Guest
piratos
Beiträge: n/a
Standard

Also ich muss mich schon sehr wundern.

Das ist ein Minibeispiel um das zu verdeutlichen und nichts konkretes im Einsatz.

Und was Templateengine betrifft musst du mir rein nichts erzählen, nicht nur das ich Jahre an Erfahrungen mit diversen habe sondern zudem auch noch eine eigene.

Und wie man so etwas perfomant gestaltet das muss mir auch keiner erzählen das ist im brutalen Altagseinsatz und das nicht bei Pippifax - Websites.

Und das eine Templateengine höchst performant eingesetzt werden kann, das wissen alle meine User.
Mit Zitat antworten
  #33 (permalink)  
Alt 07-07-2009, 22:02
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Es geht hier ja nicht um das Für und Wider von Templateengines generell, sondern um die Tatsache, dass der Einsatz einer solchen für das Ausliefern eines Bildes einfach überflüssig ist, sondern sogar zu umständlich wäre. Separation von Präsentation und Business ist die eine Sache, aber bei der Auslieferung einfachster Ressourcen kann wohl kaum von Business gesprochen werden. Nebenbei führt der Einsatz einer Templateengine nicht direkt zu der Trennung zuvor genannter.
Mit Zitat antworten
  #34 (permalink)  
Alt 07-07-2009, 22:12
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Verstehe ich immer noch nicht. Das Template besteht also aus nichts als aus einem Header und den Bilddaten?

Ich würde im Leben ja nicht auf die Idee kommen, im View (respektive Template) nochmal einen Header zu schicken?!
Mit Zitat antworten
  #35 (permalink)  
Alt 08-07-2009, 00:52
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
... musst du mir rein nichts erzählen ... Jahre an Erfahrungen ... eine eigene ... im brutalen Altagseinsatz ... nicht bei Pippifax - Websites
Ich habe mir dein Zeug* mal angesehen. Die Applikation sind 500 Zeilen Spaghetticode. Die Template Engine besteht im Wesentlichen aus zwei kruden eval()-s. Die Performance kommt duch exzessives Caching.

Da steckt kein bißchen Erfahrung drin. *no offense*


*) Link in deinem Profil. Ich will es nicht namentlich nennen, denn Google liest mit.
Mit Zitat antworten
  #36 (permalink)  
Alt 08-07-2009, 00:59
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Non-Pipifax-Seiten, bei denen ich hinter die Kulissen gucken konnte, haben durchweg gar kein Templatesystem/-Engine verwendet. Von PHP mal abgesehen Und ich durfte schon ein bisschen sehen
Mit Zitat antworten
  #37 (permalink)  
Alt 08-07-2009, 14:06
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Das ist ein Minibeispiel um das zu verdeutlichen und nichts konkretes im Einsatz.
Wir hatten hier aber ein konkretes Problem zu lösen -- und der hierfür unnötige Einsatz einer Template-Engine dürfte den Threaderöffner eher verwirren, denn erhellen. Er hatte ja so schon Schwierigkeiten, den gegebenen Ratschlägen zu folgen.


Zitat:
Und was Templateengine betrifft musst du mir rein nichts erzählen, nicht nur das ich Jahre an Erfahrungen mit diversen habe sondern zudem auch noch eine eigene.

Und wie man so etwas perfomant gestaltet das muss mir auch keiner erzählen das ist im brutalen Altagseinsatz und das nicht bei Pippifax - Websites.
Ich hatte keineswegs vor, dir auf die Füße zu treten.
Die "Performance-Betrachtungen" meinerseits waren hauptsächlich für den Threaderöffner gedacht. Allerdings redet er anscheinend nicht mehr mit uns ...

Zitat:
Und das eine Templateengine höchst performant eingesetzt werden kann, das wissen alle meine User.
Das mag sein, aber in dem Fall hier geht es um ein Script, das jedesmal dann gestartet wird, wenn eine kleine Grafik (so 'ne Art "webbug") angefordert wird. Das ist ansich schon Overkill, ein paar MByte Script-Engine anzuwerfen, nur um ein paar Bytes an Binärdaten auszuliefern. Da muss ich nicht auch noch eine Template-Engine includen.

Ich würde sogar soweit gehen, das Laden der (Grafik-)Datei ganz zu wegzulassen. Das hat neben der Einsparung von Dateioperationen den Vorteil, dass man keine Fehler mehr abfangen muss.

PHP-Code:
<?php
header
('Content-Type: image/gif');
echo 
base64_decode(
    
'R0lGODlhCAAIAIAAAAAAAPACH5BAAAAAAA//'.
    
'LAAAAAAIAAgAAAIKjI9pcKwPE5guFgA7'
);
?>

Geändert von fireweasel (08-07-2009 um 18:51 Uhr)
Mit Zitat antworten
  #38 (permalink)  
Alt 08-07-2009, 14:25
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von fireweasel Beitrag anzeigen
PHP-Code:
<?php
header
('Content-Type: image/gif');
echo 
base64_decode(
    
'R0lGODlhCAAIAIAAAAAAAPACH5BAAAAAAA//'.
    
'LAAAAAAIAAgAAAIKjI9pcKwPE5guFgA7'
);
?>
Aber auch nur, wenn es wirklich kleine Grafiken sind, wo der Request-Overhead die Dateigröße (in Summe) übersteigt. Ansonsten stehst du hier nämlich vor einem neuen Problem: Das Chaching des Browsers wird so ausgehebelt.
Mit Zitat antworten
  #39 (permalink)  
Alt 08-07-2009, 18:59
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von unset Beitrag anzeigen
Aber auch nur, wenn es wirklich kleine Grafiken sind, wo der Request-Overhead die Dateigröße (in Summe) übersteigt.
Klar.

Zitat:
Zitat von unset Beitrag anzeigen
Ansonsten stehst du hier nämlich vor einem neuen Problem: Das Chaching des Browsers wird so ausgehebelt.
Was hier möglicherweise sogar gewünscht ist?

Die Anwendung als "Trackingpixel" schließt diese Interpretation zumindest nicht aus ...
Mit Zitat antworten
  #40 (permalink)  
Alt 08-07-2009, 19:54
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Naja, aber bei einem Trackingpixel _will_ man ja einen weiteren Request, und keinen Inlinepixel. Wenn man nämlich in der Lage ist, eine Grafik inline einzubauen, braucht man keinen Trackingpixel mehr.
Mit Zitat antworten
  #41 (permalink)  
Alt 08-07-2009, 19:58
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@unset: Wie kommst du auf inline?
Mit Zitat antworten
  #42 (permalink)  
Alt 08-07-2009, 20:01
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Oh, wie peinlich. Ich sollte die Posts besser lesen ;-)

Hab da irgendwie in dieser Art was gelesen:

PHP-Code:
<img src="data:image/gif;base64,..." /> 
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Habe ein Problem beim Parameter übergeben an eine PHP Url BananaJo HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 9 12-06-2009 13:24
Wie kann ich eine JavaScript variable an PHP übergeben? HansDerLange PHP Developer Forum 10 17-03-2008 15:49
Eine PHP Datei über eine andere bearbeiten 0NyX PHP Developer Forum 9 24-08-2007 09:21
Kann man als Standardwert für einen Parameter eine Globale Variable angeben? Jones011 PHP Developer Forum 6 17-08-2006 09:16
Wer kann mir helfen aus einer XML - Datei eine XSL Datei (Tabellenform) darzustellen sonja_22 Projekthilfe 3 04-08-2005 13:39

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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:45 Uhr.