Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Variable im String begrenzen (https://www.delphipraxis.net/140498-%5Bphp%5D-variable-im-string-begrenzen.html)

himitsu 19. Sep 2009 12:56


[PHP] Variable im String begrenzen
 
Ok, dann mach ich bei dem ganzen gePHPe hier auch mal mit :stupid:

Man kann doch in "-Strings auch Variablen einbauen, aber wie kann ich sagen "hier hört der Name auf"?

Code:
$Variable = 'dsadsa';
echo "text $VariableHier nicht mehr";
PHP würde hier doch "$VariableHier" erkennen und nicht nur "$Variable" :gruebel:
Und nein, ein Leerzeichen oder irgendwas Anderes ist nicht möglich.

und das wollte ich vermeiden
Code:
echo "text " . $Variable . "Hier nicht mehr";

Valle 19. Sep 2009 13:09

Re: [PHP] Variable im String begrenzen
 
Code:
echo "text {$Variable}Hier nicht mehr";
Tu dir und deinen Kollegen aber bitte den Gefallen und mach deinen Code lesbarer, indem du den String-Verknüpfungsoperator "." benutzt. Dieser wird auch in der Zend Styleguide empfohlen. :)

Mit freundlichen Grüßen,

Valle

himitsu 19. Sep 2009 13:14

Re: [PHP] Variable im String begrenzen
 
das ist grade der Grund dafür ... dieses xxx' . $Variable . 'xxx ist etwas unübersicht geworden, drum wollte ich es an den Stellen umstellen

so'ne "kleine" MySQL-Abfrage kann groß werden :wall:

Valle 19. Sep 2009 13:15

Re: [PHP] Variable im String begrenzen
 
Ist eben Ansichtssache. Ich finde die Verknüpfungs-Variante lesbarer. Ist deine Sache. ;-)

Mit freundlichen Grüßen,

Valle

himitsu 19. Sep 2009 13:27

Re: [PHP] Variable im String begrenzen
 
Code:
mysql_query('INSERT INTO `' . $Config['DBPrefix'] . 'Log` (`Time`, `Source`, `IP_Port`, `UserAgent`, `Message`) VALUES ("'
  . $_SERVER['REQUEST_TIME'] . '", "' . mysql_escape($_SERVER['SCRIPT_NAME']) . '", "' . $_SERVER['REMOTE_ADDR'] . ':'
  . $_SERVER['REMOTE_PORT'] . '", "' . mysql_escape($_SERVER['HTTP_USER_AGENT']) . '", "' . mysql_escape($Message) . '")');
sooooo lesbar ist das nun nicht wirklich

und dabei ist mysql_escape schon ein Alias für mysql_real_escape_string

dominikkv 19. Sep 2009 13:37

Re: [PHP] Variable im String begrenzen
 
Code:
mysql_query(sprintf(
  "INSERT INTO `%sLog` (`Time`, `Source`, `IP_Port`, `UserAgent`, `Message`) VALUES
                       ('%s',  '%s',    '%s:%s',  '%s',       '%s');",
  $Config['DBPrefix'],
  $_SERVER['REQUEST_TIME'],
  mysql_escape($_SERVER['SCRIPT_NAME']),
  $_SERVER['REMOTE_ADDR'],
  $_SERVER['REMOTE_PORT'],
  mysql_escape($_SERVER['HTTP_USER_AGENT']),
  mysql_escape($Message)));

Valle 19. Sep 2009 13:41

Re: [PHP] Variable im String begrenzen
 
Zitat:

Zitat von himitsu
sooooo lesbar ist das nun nicht wirklich

und dabei ist mysql_escape schon ein Alias für mysql_real_escape_string

Naja, das liegt dann aber eher an der Code-Struktur. Wenn man einen gescheiten DB-Treiber verwendet oder entsprechende DB-Abstraktionsroutinen schreibt sieht der Code schon um einiges lesbarer aus. Mein Framework hätte folgende Struktur:

Code:
$db->insert('log', array(
    'time' => $_SERVER['REQUEST_TIME'],
    'useragent' => $_SERVER['HTTP_USER_AGENT'],
    // ...
));
Tabellen-Präfix und Parameter-Escaping wird automatisch erledigt. Wenn du PDO verwendest, gibt es auch Parameter für SQL-Statements, wie sie auch diversen Delphi-Applikaionen bekannt sind: Link. ;)

Mit freundlichen Grüßen,

Valle


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz