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 10-09-2006, 13:40
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard Sprache in zentraler Datei ablegen

Hallo,

ich entwickle gerade an einem Backend, dort sollen alle Texte aus einer separaten Sprachdatei kommen, damit man später leichter übersetzen und umschalten kann.

Im HTML der PHP-Datei habe ich überall Platzhalter erstellt:
Code:
<a href="#"><img src="i/logout.gif" alt="{LOGOUT}" title="{LOGOUT_TITLE}"/></a>
Dann eine Sprachdatei erstellt mit folgendem Inhalt:
Code:
$lang['LOGOUT'] = 'Logout';
$lang['LOGOUT_TITLE'] = 'Klicken Sie hier um sich auszuloggen';
Wie muss ich denn nun vorgehen, um die Platzhalter im HTML mit denen der Sprachdatei zu ersetzen?
__________________
Gruß,
Peter
Mit Zitat antworten
  #2 (permalink)  
Alt 10-09-2006, 14:10
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

PHP-Code:
echo "<a href=\"#\"><img src=\"i/logout.gif\" alt=\"" $lang[LOGOUT_TITLE] .
     
"\" title=\"" $lang[LOGOUT] . "\"/></a>" 
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #3 (permalink)  
Alt 10-09-2006, 19:19
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Verstehe das nicht, es ersetzt mir alles mit einem "d". Keine Fehlermeldungen, es wird nur jedes $lang['platzhalter'] mit einem "d" ersetzt???
__________________
Gruß,
Peter
Mit Zitat antworten
  #4 (permalink)  
Alt 10-09-2006, 19:20
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Hm? das is aber komisch. Hast du denn die Variablen vorher aktiviert (das Script durchgeführt in der sie initialisiert werden)?

Falls nicht solltest du das vorher tun, ansonsten..
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #5 (permalink)  
Alt 10-09-2006, 19:42
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wieso muss ich sie denn aktivieren? Ich habe nur eine Datei backend.php, darin mache ich einen include auf die Datei language.php und in der stehen die Variablen.

Wenn ich in der language.php die Variablen ohne das [] reinschreibe, geht es. Schreibe ich dort also $lang_BIN = 'left'; wird mir in der backend.php $lang_BIN ersetzt.

Schreibe ich $lang["BIN"] = 'left'; ersetzt mir $lang["BIN"] in backend.php das mit einem "d".

Kannst du mir sagen wie ich das korrekt machen muss oder was ich falsch mache?
__________________
Gruß,
Peter
Mit Zitat antworten
  #6 (permalink)  
Alt 10-09-2006, 20:05
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du machst wahrscheinlich irgendwo $lang='d'; (sprache = deutsch ?) und damitt ist das array $lang futsch und ist ein string 'd'
Mit Zitat antworten
  #7 (permalink)  
Alt 10-09-2006, 20:08
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

auch eingeschaltete register globals können es verursachen.
was steht in der url zu dem zeitpunkt der ersetzung?
Mit Zitat antworten
  #8 (permalink)  
Alt 10-09-2006, 20:09
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hey cool, das war es. Danke nun geht es.
__________________
Gruß,
Peter
Mit Zitat antworten
  #9 (permalink)  
Alt 10-09-2006, 21:35
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von penizillin
auch eingeschaltete register globals können es verursachen.
dadurch werden aber doch keine getzten variablen überschrieben

aber das ist mal wieder ein ganz blödes verhalten von php. dass man einen string auch als array ansprechen kann, schön und gut, aber dass es keinen fehler gibt, wenn man auf einen nicht existenten index zugreift ist "schade"
Mit Zitat antworten
  #10 (permalink)  
Alt 10-09-2006, 21:44
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
dadurch werden aber doch keine getzten variablen überschrieben
doch, leider schon. vgl. http://php-resource.de/forum/showthr...gister+globals

dass es keinen fehler gibt, würde ich aber dem type casting sowie dem buchstabenweisen ansprechen von strings in die schuhe schieben:
PHP-Code:
$a 'foo';
echo 
$a['existiert_nicht']; 
# entspricht
echo $a[(int)'existiert_nicht'];
# entspricht
echo $a[0];
#ergibt ausgabe
'f' 
bei dem kollegen Screw Driver stand in der url vermutlich "lang=de", daher das "d"...
Mit Zitat antworten
  #11 (permalink)  
Alt 10-09-2006, 22:14
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

achso, habs mal ausprobiert
PHP-Code:
// register_globals on simulieren
$lang='de';
$lang['LOGOUT'] = 'Logout';
$lang['LOGOUT_TITLE'] = 'Klicken Sie hier um sich auszuloggen';
echo 
$lang[blub];
// Ausgabe: K 
$lang wird durch register_globals als string gesetzt und alle folgenden array-zuweisungen beziehen sich auf den string.
sehr schöner effekt

aber da ausgabe "K" ist, hat es nichts mit $lang='de'; zu tun, sondern die letzte array-zuweisung gewinnt (Klicken...).
also fing beim op die letzte zuweisung mit "d" an, oder er hat $lang irgendwo explizit überschrieben, wie ich es vermutet habe.
Mit Zitat antworten
  #12 (permalink)  
Alt 11-09-2006, 01:01
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von 3DMax
aber das ist mal wieder ein ganz blödes verhalten von php. dass man einen string auch als array ansprechen kann, schön und gut
Eigentlich weniger schön und gut - das ist wirklich blödes Verhalten, "historisch gewachsen", wie es so schön heißt.

Zwischenzeitlich galt es als deprecated, aber m.W. will man es in PHP 6 wieder offiziell aufnehmen - wenn das mal nicht ausgewachsener Blödsinn ist.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #13 (permalink)  
Alt 11-09-2006, 11:57
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von wahsaga
Zwischenzeitlich galt es als deprecated, aber m.W. will man es in PHP 6 wieder offiziell aufnehmen - wenn das mal nicht ausgewachsener Blödsinn ist.
Das mit geschweiften Klammern a{2} ist deprecated und verschwindet in 6, mit eckigen Klammern ist korrekt und bleibt (auch wenn ich persönlich es zwar schön finde, aber durch multibyte-Strings nicht nutzen kann ... aber mal gucken, wenn in php6 das mit dem Array auch für multibyte-Strings möglich wird, könnte das wieder interessant werden ^^)
Mit Zitat antworten
  #14 (permalink)  
Alt 11-09-2006, 12:18
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Du hast recht, da ist das englische Manual mal wieder aktueller als das deutsche - in letzterem steht's noch umgekehrt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #15 (permalink)  
Alt 11-09-2006, 16:11
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

ich dachte, sowohl {} als auch [] fliegen für stringzugriffe raus... hmm!

Back to topic:
Am sinnigsten wäre natürlcih, wenn du das nicht schon machst, eine Templateengine zu verwenden, so dass du Code und HTML voneinander trennen kannst und nicht wie arsen ganz am Anfang die Strings verbinden musst!!
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

Formmailer v1.6.1 Bootstrap 4

Formmailer v1.6.1 Bootstrap wurde extra für Bootstrap entwickelt. Mit Bootstrap kann man schnell und einfach kleine oder große Projekte entwickeln, die auf Geräten in allen erdenklichen Formen funktionieren.

18.12.2018 arne-home | Kategorie: PHP/ Formular
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:36 Uhr.