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 03-04-2008, 09:26
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard strtolower geht leider nicht

hi,

ich bin mir nicht sicher, wodran das jetzt liegen könnte, aber ich beschreib das problem jetzt einfach mal und der weg zu dem problem.

ich benutze eine funktion die mir bei meinem template system helfen soll den include von header, footer oder anderen dateien vereinfachen soll.

dazu habe ich nen marker im teplate gesetzt der zum teil den namen der zu includieren datei beeinhaltet.

damit alle marker einheitlich sind, ist auch dieser komplett groß geschrieben.
Hier also das Template (roh fassung):
PHP-Code:
<h1>Willkommen</h1>
{
TEMPLATE.NAVIGATION
nun habe ich dazu dieses preg_replace:
PHP-Code:
    $pattern        = array(
                                
'#\{GLOBAL.NAVIGATION\}#s',
                                
'#\{GLOBAL.CONTENT\}#s',
                                
'#\{TEMPLATE.(.*?)\}#s'
                            
) ;
                        
    
$replace        = array(
                                
$global['navigation'],
                                
$global['content'],
                                
file2template('$1''tpl/')
                      ) ;

    
$tpl            preg_replace($pattern$replace$tpl) ; 
und will $1 in dieser function für ein file_get_contents verwenden.
ich hab hier erstmal nur die ausgabe gemacht um den string zur datei zu checken.
PHP-Code:
    function file2template($file$path) {
        
$file strtolower($file) ;
        return 
'./'.$path.$file.'.html' ;
    } 
jetzt hab ich leider das problem, das dass strtolower nicht funktioniert.
es kommt immer noch großschreibung bei raus:
PHP-Code:
Willkommen
./tpl/NAVIGATION.html 
erschwerend, kommt der umstand hinzu, das ich nicht weiß, warum das hier auch nicht wirklich klappt:

hat da vielleicht jmd ne idee?
PHP-Code:
    function file2template($file$path) {
        
$file strtolower($file).'.html' ;
        
$file file_get_contents('./'.$path.$file) ;
        return 
$file ;
    } 
selbst wenn ich den marker einfach direkt klein schreibe wirft es folgenden fehler aus:
PHP-Code:
Warningfile_get_contents(./tpl/$1.html) [function.file-get-contents]: failed to open stream
No such file or directory in .../dev/saunafachartikel/library/parser.content.php on line 15 
__________________
Design & Coding with a breeze of madness at xjonx

Geändert von xJonx (03-04-2008 um 10:08 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 03-04-2008, 09:31
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: strtolower geht leider nicht

Zitat:
Original geschrieben von xJonx
hat da vielleicht jmd ne idee?
Ja, in deiner file2template()-Funktion verwendest du nicht strtolower, sondern strtoupper

Peinlich!
Mit Zitat antworten
  #3 (permalink)  
Alt 03-04-2008, 09:31
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

Wenn du strtoupper verwendest darfst du auch nicht das Verhalten von strtolower erwarten ...
Mit Zitat antworten
  #4 (permalink)  
Alt 03-04-2008, 09:32
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

peinlich: ja ... aber ich hatte vorhin einfach strtoupper getestet und marker klein geschrieben ... geht leider auch nicht ...
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #5 (permalink)  
Alt 03-04-2008, 09:33
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zu deinem 2. Problem:

file2template('$1', 'tpl/') übergibt tatsächlich als Parameter nur $1 (den String!) und "tpl". Damit deine Variable $1 ausgewertet werden kann, musst du die Anführungszeichen wegmachen, also file2template($1, 'tpl/');

P.S.: Brichst du bitte die Fehlermeldung noch um? Hab lange Scrollbalken

Geändert von Shurakai (03-04-2008 um 09:36 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 03-04-2008, 10:17
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

das gibt aber leider dieses hier aus:
PHP-Code:
Parse errorsyntax errorunexpected T_LNUMBERexpecting T_VARIABLE or '$' 
in .../saunafachartikel/library/parser.content.php 
on line 28 
hmmmm
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #7 (permalink)  
Alt 03-04-2008, 10:22
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von xJonx
hmmmm
Logisch, PHP versucht das $1 als PHP-Variable zu behandeln, in Wirklichkeit ist es aber ein «Regex-Callback», deshalb musst du es maskieren: \$1
__________________
Gruss
H2O
Mit Zitat antworten
  #8 (permalink)  
Alt 03-04-2008, 10:43
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ja, nur das dann dieses hier hervorbringt:
PHP-Code:
WarningUnexpected character in input:  (ASCII=92state=1 in 
.../saunafachartikel/library/parser.content.php on line 28 
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #9 (permalink)  
Alt 03-04-2008, 11:26
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

wenn ich aber, das ganze so mache ... also erstmal ohne den file_get_contents
PHP-Code:
function file2template($file$path) {
        
$file strtolower($file).'.html' ;
        return 
$file ;
    } 
dann kommt schon mal das richtige raus ... aber: halt nicht in klein, sondern wie es im template steht leider groß ...

dazu verwende ich jetzt das hier:
PHP-Code:
file2template("$1"'tpl/'
wenn ich aber dann den wert $file für die datei verwenden will, ist es
wieder $1 ...
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #10 (permalink)  
Alt 03-04-2008, 12:19
Manko10
 Newbie
Links : Onlinestatus : Manko10 ist offline
Registriert seit: Mar 2008
Beiträge: 115
Manko10 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie wäre es, wenn du die Funktion preg_replace_callback() mal ausprobieren würdest?
Mit Zitat antworten
  #11 (permalink)  
Alt 03-04-2008, 13:08
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

danx ...

ich hab es jetzt so gelöst
PHP-Code:
    function file2template($file) {
        return 
file_get_contents('./tpl/'.strtolower($file[1]).'.html') ;
    }
    
    
$tpl            preg_replace_callback('#\{TEMPLATE.(.*?)\}#s'"file2template"$tpl) ; 
__________________
Design & Coding with a breeze of madness at xjonx
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

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 04:40 Uhr.