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 14-07-2009, 00:00
sAks
 Registrierter Benutzer
Links : Onlinestatus : sAks ist offline
Registriert seit: Jul 2009
Beiträge: 3
sAks befindet sich auf einem aufstrebenden Ast
Standard typisches echo-Problem (Anführungszeichen)

Hallo,
habe ein kleines Problemchen:

PHP-Code:
echo '<tr><td align="right"><a href="edit.php?cmd=edit&Nr='.$row['Nr'].'" onClick="MyWindow=window.open("edit.php","MyWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=675,height=400"); return false;"><img src="images/stift.png" border="0" /></a></td></tr>'
Also in diesem Bereich gehören normal einfache Anführungszeichen, aber da ich sie als echo-Klammern nutze, geht das nicht. Abhilfe?
PHP-Code:
("edit.php","MyWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=675,height=400"
Danke im Voraus.
sAks
Mit Zitat antworten
  #2 (permalink)  
Alt 14-07-2009, 00:05
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

1. Code umbrechen
2. Entweder einen anderen Delimiter nehmen (einfache oder doppelte Anführungszeichen) oder escapen (idR mit einem Backslash).
Mit Zitat antworten
  #3 (permalink)  
Alt 14-07-2009, 00:14
sAks
 Registrierter Benutzer
Links : Onlinestatus : sAks ist offline
Registriert seit: Jul 2009
Beiträge: 3
sAks befindet sich auf einem aufstrebenden Ast
Standard

Danke für die schnelle Antwort.

Gibt es eine Regel wie man Delimiter innen/aussen in echos benutzt?

zB. echo ' .... ".... ´...´....".....';

Würde so etwas gehen?
Mit Zitat antworten
  #4 (permalink)  
Alt 14-07-2009, 00:15
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.604
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Wozu das ganze Zeug mit echo ausgeben? Wirds dadurch schöner?

PHP-Code:
<tr>
    <td align="right">
        <a href="edit.php?cmd=edit&Nr=<?php echo $row['Nr']; ?>" onclick="MyWindow=window.open("edit.php","MyWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=675,height=400"); return false;">
            <img src="images/stift.png" border="0" />
        </a>
    </td>
</tr>
Mit Zitat antworten
  #5 (permalink)  
Alt 14-07-2009, 00:21
sAks
 Registrierter Benutzer
Links : Onlinestatus : sAks ist offline
Registriert seit: Jul 2009
Beiträge: 3
sAks befindet sich auf einem aufstrebenden Ast
Standard

@h3ll
Man, darauf bin ich noch gar nicht gekommen. Wäre natürlich die einfachste Idee *g*
Das oben geschriebene echo ist nur ein Teilbereich von der TAbelle. Das eigentliche echo ist noch viel länger, aber unkomplizierter, was Anführungszeichen angeht. Habe das echo immer weiter ausgebaut und erst jetzt das vorprogrammierte Problem erkannt. Ich denke ich werde es so lösen.

Thx euch beiden :-)
Mit Zitat antworten
  #6 (permalink)  
Alt 15-07-2009, 17:47
media-authoring
 Registrierter Benutzer
Links : Onlinestatus : media-authoring ist offline
Registriert seit: Apr 2008
Beiträge: 16
media-authoring ist zur Zeit noch ein unbeschriebenes Blatt
Standard Ist ansich Geschmacksache, aber

Ich mache gerne außen die doppelten Anführungszeichen und innen die Einfachen

also z.B. echo "<a href='example.php' class=$links1>example</a>";

Man spart sich so in der Regel Maskierungen wie \" und die Variablen werden auch in der Regel ohne Probleme ausgelesen. Bei komplexen Dingen kann man
allerdings manchmal auch hier nicht auf das Maskieren verzichten.

Vorteil:
Einfach und übersichtlich. Gute Lesbarkeit des Quellcodes.

Nachteile:
Ist umständlich wenn man schon viel HTML-Code mit doppelten " hat und
diesen nachträglich in PHP umwandeln will oder muss.

Wichtig, das ganze funktioniert mit geradem ' und nicht mit ` oder ´.

Ich habe schon viele Fehler in bestehenden Codes einfach dadurch beheben können, dass ich die Zeilen mit System " ' ' " anstatt mit System ' " " ' geschrieben habe.

Geändert von media-authoring (15-07-2009 um 17:48 Uhr) Grund: Rechtschreibung
Mit Zitat antworten
  #7 (permalink)  
Alt 15-07-2009, 18:07
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.604
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von media-authoring Beitrag anzeigen
Ich mache gerne außen die doppelten Anführungszeichen und innen die Einfachen

also z.B. echo "<a href='example.php' class=$links1>example</a>";

Man spart sich so in der Regel Maskierungen wie \" und die Variablen werden auch in der Regel ohne Probleme ausgelesen. Bei komplexen Dingen kann man
allerdings manchmal auch hier nicht auf das Maskieren verzichten.

Vorteil:
Einfach und übersichtlich. Gute Lesbarkeit des Quellcodes.

Nachteile:
Ist umständlich wenn man schon viel HTML-Code mit doppelten " hat und
diesen nachträglich in PHP umwandeln will oder muss.

Wichtig, das ganze funktioniert mit geradem ' und nicht mit ` oder ´.

Ich habe schon viele Fehler in bestehenden Codes einfach dadurch beheben können, dass ich die Zeilen mit System " ' ' " anstatt mit System ' " " ' geschrieben habe.
Ich halte davon gar nix. Bei HTML sind " üblich. Wenn plötzlich ' vorkommen, sieht es erstens unübersichtlich aus, und zweitens kommt man sich so leicht mit Javascript-Code in die Quere, wo üblicherweise einfache Hochkomma verwendet werden.

HTML-Code kann man nicht in PHP "umwandeln". Das sind zwei vollkommen unterschiedliche Dinge. Außerdem macht es auch überhaupt keinen Sinn tonnenweise HTML-Code mit echo auszugeben.
Mit Zitat antworten
  #8 (permalink)  
Alt 15-07-2009, 18:28
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

Es ist Geschmackssache. Bei einigen Programmiersprachen bedeuten jedoch die ' eine Folge von Bytes 0 <= x <= 255 und die " eine Folge von Bytes 0 < x <= 255 mit einem abschliessenden 0 Byte. Diese zweite Variante nennt man vielerorts dann auch String (Zeichenkette mit abschliessendem 0 Byte).
Mit Zitat antworten
  #9 (permalink)  
Alt 15-07-2009, 19:56
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
echo "<a href='example.php' class=$links1>example</a>"
Um Gottes Willen Leute, arbeitet mit sauberer Zeichenkettenverknüpfung:
PHP-Code:
echo '<a href="example.php?id='.$id.'" class="'.$links1.'">example</a>'
Peter

PS: An alle Übeltäter. Code umbrechen, und zwar pronto!
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #10 (permalink)  
Alt 15-07-2009, 20:09
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
arbeitet mit sauberer Zeichenkettenverknüpfung:
Das soll schön sein?

Neee...
Dann klopp ich das doch lieber per DOM zusammen.
Das ist schön !!
__________________
Wir werden alle sterben
Mit Zitat antworten
  #11 (permalink)  
Alt 15-07-2009, 20:21
media-authoring
 Registrierter Benutzer
Links : Onlinestatus : media-authoring ist offline
Registriert seit: Apr 2008
Beiträge: 16
media-authoring ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Ich halte davon gar nix. Bei HTML sind " üblich. Wenn plötzlich ' vorkommen, sieht es erstens unübersichtlich aus, und zweitens kommt man sich so leicht mit Javascript-Code in die Quere, wo üblicherweise einfache Hochkomma verwendet werden.

HTML-Code kann man nicht in PHP "umwandeln". Das sind zwei vollkommen unterschiedliche Dinge. Außerdem macht es auch überhaupt keinen Sinn tonnenweise HTML-Code mit echo auszugeben.
Ok, umwandeln ist definitiv falsch ausgedrückt, doch ...
Was erzeugt man denn mit PHP letzlich?
Doch wohl html-Code für den Browser.

Natürlich mach es keinen Sinn tonnenweise (Wer sprach denn hiervon?) html-code mit echo auszugeben. Schließlich geht es ja darum, die Seite dynamisch
zu erstellen.

Konstrukte, wo ständig <? php-code...?> - Schnipsel und html-code abwechseln sind aber meiner Meinung hier das weitaus schlimmere übel, gerade wenn man sich in fremden Code einarbeiten muss.

Beim verwursteln von Javascript,PHP und html kann es Probleme durch die Schachtelung geben, egal welche Methode man benutzt.

Ich will aber keine Prinzipienfrage draus machen, ein Projekt, welches mit ' " " ' erstellt wurde, werde ich nicht auf " ' ' " ummodeln sondern meine Schreibweise an das Projekt anpassen.
Mit Zitat antworten
  #12 (permalink)  
Alt 15-07-2009, 20:36
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

Afaik sollte das ganze ordentlich im View erledigt werden:
PHP-Code:
<a href="example.php?id=<?php echo $id ?>" class="<?php echo $links1 ?>">example</a>
Noch schicker natürlich mit short_open_tags bzw. mit Zend_View und aktiviertem Streamwrapper:
PHP-Code:
<a href="example.php?id=<?=$id ?>" class="<?=$links1 ?>">example</a>
Anders haben Ausgaben meiner Meinung nach nichts im Quellcode verloren, weder als Echo noch sonstwie.
Mit Zitat antworten
  #13 (permalink)  
Alt 15-07-2009, 20:53
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.604
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von media-authoring Beitrag anzeigen
Konstrukte, wo ständig <? php-code...?> - Schnipsel und html-code abwechseln sind aber meiner Meinung hier das weitaus schlimmere übel, gerade wenn man sich in fremden Code einarbeiten muss.
Dann hast du bis jetzt nur Schrott-Code gesehen. Sauber geschrieben ist ein Template mit php-Tags deutlich lesbarer als abwechselnd haufenweise echo dazwischen.

Und im eigentlichen Programmcode hat sowas wie echo eh nix verloren.
Mit Zitat antworten
  #14 (permalink)  
Alt 15-07-2009, 20:53
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von PHP-Desaster Beitrag anzeigen
Afaik sollte das ganze ordentlich im View erledigt werden:
PHP-Code:
<a href="example.php?id=<?php echo $id ?>" class="<?php echo $links1 ?>">example</a>
Das wird aber spätestens bei solchen Dingen vor Allem für Anfänger schnell unübersichtlich und somit fehleranfällig:
PHP-Code:
<div class="inhalt">
  <table>
<?php
  $open 
fopen ('blubb.txt');
  while (
$line fgets ($open"r"))
  {
    
$trenn explode (';'$line);
?>
  <tr>
    <td><?php echo $trenn[0]; ?></td>
    <td><?php echo $trenn[1]; ?></td>
    <td><?php echo $trenn[2]; ?></td>
  </tr>
<?php
  
}
?>
  </table>
</div>
Beispiele dazu gibt es hier im Forum zuhauf. Wobei ich persönlich xslt als Templatesprache bevorzuge. Aber das ist eine andere Geschichte.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #15 (permalink)  
Alt 15-07-2009, 20:56
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.604
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kropff Beitrag anzeigen
Das wird aber spätestens bei solchen Dingen vor Allem für Anfänger schnell unübersichtlich und somit fehleranfällig:
PHP-Code:
<div class="inhalt">
  <table>
<?php
  $open 
fopen ('blubb.txt');
  while (
$line fgets ($open"r"))
  {
    
$trenn explode (';'$line);
?>
  <tr>
    <td><?php echo $trenn[0]; ?></td>
    <td><?php echo $trenn[1]; ?></td>
    <td><?php echo $trenn[2]; ?></td>
  </tr>
<?php
  
}
?>
  </table>
</div>
Ein fopen hat in einem View nix verloren! Das gehört zur Verarbeitung und nicht zur Ausgabe.

Und Anfänger verhaspeln sich ständig mit irgendwelchen gigantischen und unübersichtlichen echo-Kontruktionen, wie man hier und in anderen Foren sieht. Also würd ich gern wissen, wo der Mehrwert von echo für Anfänger liegen soll.

Außerdem, warum sollte man einem Anfänger den "falschen" Weg beibringen? Wär es nicht klüger, wenn er es gleich ordentlich lernt?

Geändert von h3ll (15-07-2009 um 20:59 Uhr)
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
Problem mit Anführungszeichen Azadoras PHP Developer Forum 3 03-12-2007 01:51
Problem mit Anführungszeichen maddinel PHP Developer Forum 2 03-10-2005 12:50
Problem mit Anführungszeichen in PHP Code komikaa PHP Developer Forum 4 22-06-2005 12:36
typisches problem bei mir... Realmaker SQL / Datenbanken 25 07-02-2003 14:50
ECHO-Problem archie PHP Developer Forum 6 04-02-2002 18:41

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

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
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:00 Uhr.