php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.03.2005, 16:17  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard Nochmal Single vs DoubleQuote

Hi

folgender Code:
Code:
	function getSide($host, $document='', $port=80, $proxy='') {
		$socket = fsockopen($proxy, $port);
		if($socket) {
			if(fputs($socket, "GET http://".$host." HTTP/1.0\r\nHost: ".$host."\r\n\r\n")) {
				while($line = fgets($socket)) {
					echo $line;
				}
			}
			fclose($socket);
		} 
	}
Kritische Zeile:

fputs($socket, "GET http://".$host." HTTP/1.0\r\nHost: ".$host."\r\n\r\n");
und
fputs($socket, 'GET http://'.$host.' HTTP/1.0\r\nHost: '.$host.'\r\n\r\n');

Das obere tut (doubleQuoted), das untere nicht(singleQuoted).

Warum?

Das 'NichtTun' zeigt sich an einem Timeout bei der Zeile
$line = fgets($socket)
die ich auch mal ohne 'while' getestet hab und den Timeout bekam.


Bisher habe ich immer gehört/gelesen das singelQuoted schneller ist als doubleQuoted.
Nach einigen Tests, die ich auch von hier hab (mit und ohne Variablen darin zum parsen), bin ich von dieser Aussage nicht so wirklich überzeugt.

Und jetzt erlebe ich einen solchen Nachteil der singleQuotes.
Irgendwie gelange ich immer mehr zu der Annahme, mann solle die singleQuotes einstampfen bzw nur dann verwenden, wenn man in einem String nochmal andere Seperatoren zum quoten braucht (SELECTs, etc)...

Befor ich aber für mich eine endgültige Entscheidung treffe, was meinen CodeStyle angeht, würde ich doch gern ein paar Meinungen lesen, die für oder gegen die eine oder andere Variante steht.

Bitte keine ich-vermute-mal-Posts, ich brauch Informationsquellen, wo ich den Beweis lesen oder es selbst nachprüfen kann. Alles andere hilft mir nicht wirklich.

gez.
Der Desian
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.03.2005, 16:35  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

singlequotes werden von php nicht mehr nach variablen durchsucht und alles, was zwischen single quotes steht, wird so weitergegeben, verarbeitet, ausgegeben etc.. deswegen sollten single quotes grundsätzlich erstmal 'schneller' sein. der php-interpreter dürfte das ganze wahrscheinlich aber so gut optimieren, dass man im normalfall keine geschwindigkeitseinbußen merkt.

die geschwindigkeit von skripten sollte aber erstmal nicht das wichtigste sein, wonach man code optimiert. weit wichtiger sind robustheit, stabilität und damit zuverlässigkeit von code.

PHP-Code:
<?php

 $html 
"hello $world ... ";
 
// wird zu 
 
$html 'hello ' $world ' ... ';
 
// oder
 
$html sprintf('hello %s ...'$world);
?>
die letzten beiden zeilen sind besser wartbar und der änderungsaufwand ist deutlich geringer.

grundsätzlich sind single quotes ein feature und kein hindernis oder ein nachteil, denn durch das erzwungene 'freilegen' der variablen innerhalb von strings machst du den code lesbarer, besser wartbar und weniger fehleranfällig.
axo ist offline  
Alt 23.03.2005, 16:44  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dein fehler liegt übrigens nicht an den single quotes, sondern daran, dass php den string '\r\n' als 'backslash r backslash n ' ausgibt und bei double quotes einen windows-zeilenumbruch erzeugt.
axo ist offline  
Alt 23.03.2005, 17:03  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard

Verstehe!
An das NichtParsen von \r\n hab ich nicht gedacht...
Danke!
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Single Auktions Software Beitragsarchiv 4 16.05.2005 11:13
Single Auktions Software PHP Tipps 2005 3 12.05.2005 18:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php single quotes umbruch, html singlequotes besser, untere double quotes, php quote backslash, fputs single quotes, single vs double quote

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.