der Code will nicht

jehudin

jehudin

Mitglied
Thread Starter
Dabei seit
16.03.2005
Beiträge
230
Reaktionspunkte
3
Hallo Leute

Ich möchte gerne einen Code aus dem Tutorial vom http://www.peterkropff.de ausgeben.

Mein Browser (Safari/Firefox) gibt leider immer nur ein leeres Fenster aus.

Ich habe den Code vom Internet kopiert. Dann über Buttler mit "copy as plaintext" in den TextWrangler kopiert.

Das Dokumentformat ist Uicode und ich möchte den Code über MAMP auf dem Browser ausführen.

Andere Codes funktionieren, dieser nicht!

Hier ist der Code:
PHP:
<?php
**$name[0]*=*'Claudia*Mustermann';
**$name[1]*=*'Dieter*Hinz';
**$name[2]*=*'Peter*Kunz';

**for*($i*=*0;*$i*<*count*($name);*$i++)
**{
****echo*($i*+*1).'*'.$name[$i].'<br>';
**}
?>

Wo liegt das Problem?!?

Wie ihr sieht gibts bei mir immer diese Sterne anstelle der Leerzeichen! In einem anderen Forum gab es Unterstriche anstelle Leerzeichen beim Einfügen.

Also muss das Problem irgendwie daran liegen!

Der Code wurde als gut empfunden!

lg

j.
 
aja, dann kopier es doch hier aus dem Forum, mach ein search+replace der Sternchen durch Leerzeichen und es sollte klappen.

Wenn's dann immer noch nicht geht, bitte die Fehlermeldung posten.
 
Oder fix abtippen. Biste in 20 Sek mit fertig.
Da lernt man meist auch mehr als mit dieser rumkopiererei.
 
es tut mir leid, aber mit "wollen" hat Software wenig am Hut! Sie funktioniert oder eben nicht! Durch schlichtes kopieren wirst Du nie sinnvolle Skripte zusammenbekommen oder PHP verstehen!

Du hast den Fehler ja selbst erkannt und nun mach Dir die Mühe und entfern die "*" halt mal in Handarbeit und setzte Leerzeichen! Ein bißchen Aufwand ist halt zum Programmieren schon nötig :(
 
Der Code wurde als gut empfunden!

Das geht noch besser ;)

Das Problem ist diese Zeile:

PHP:
for ( $i=0; $i < count ($name); $i++ )

Bei jedem Durchlauf wird von dem Array die Anzahl der Elemente bestimmt, also count($array)mal und das kostet Rechenzeit.

Besser ist es, so mit for..to Schleifen und Arrays zu arbeiten:

PHP:
$count = count($name);
for ( $i=0; $i < $count; $i++ )

Oder als Kurzform:

PHP:
for ( $i=0; $count = $count($name); $i < $count; $i++ )

Oder halt mit for..each -> http://de3.php.net/foreach

2nd
 
Danke an alle!

Nach dem ich den Text vom Forum genommen habe und alle Sterne durch Leerzeichen ersetzt habe, funktionierts!

Wie um alles in der Welt kann ich sicherstellen, dass so was nicht mehr passiert? Bzw. ist es irgend wie möglich eine Software zu haben welche die Zwischenablage von ungewollten Zeichen bereinigt.

Ich habe zwar beim Butler "copy as plaintext" eingestellt aber das scheint nicht zu funktionieren.

Mit dem TextEdit "in reinen Text umwandeln" funktioniet auch nicht!

Wenn ich alles schön brav von Hand eingebe gehts!

Kann es an den Einstellungen vom TextWrangler liegen? Unicode (UTF-8, no BOM), Unix (LF)
 
Zuletzt bearbeitet:
Ich hab mir jetzt mal den Code von http://www.peterkropff.de/site/php/schleifen.htm kopiert. Da sind keine Sternchen drin und auch keine Underscores. Egal, ob ich die in TextEdit oder in TextMate einfüge. Arbeitest du mit TextEdit auch im reinen Textformat? Und schmeiß doch mal Butler raus, ich würde nämlich den am ehesten als den Schuldigen vermuten.
 
  • Gefällt mir
Reaktionen: jehudin
Also, ich habe den Butler nun ausgeschaltet und es ging folgendermassen:

Zuerst habe ich den Text von der Homepage ganz normal kopiert und in TextWrangler gepastet, so funktionierte es nicht! Es gab mir wieder fremde Zeichen anstelle der Leerzeichen.

Dann habe ich den Text wieder von der Homepage kopiert in TextEdit gepastet, dann "in reinen Text umwandeln" und siehe da, es hat funktioniert!

Jetzt mach ich genau das gleiche noch ein Mal, mit "Butler" angestellt ...
 
So, das Problem scheint gelöst zu sein!

Mit "Butler" angestellt ging es mit beiden obigen Varianten nicht!

Somit ist "Butler" der Schuldige! Schade, denn ich find das Programm super gut!

Kann mir vielleicht jemand einen Tipp geben welches Pasteboard-Programm ich nehmen soll? Bzw. welches "paste plain text" auch wirklich beherrscht?

Oder gibts da sonst eine Lösung?

Jedes mal mit TextEdit ist sicher auch ein wenig lästig ...
 
Textwrangler hat die praktische Funktion "Zap Gremlins". Das ist ein bißchen kryptisch benannt bedeutet aber nur, das alle ungültige Sonderzeichen aus dem Code entfernt werden. Ich fürchte nur im falle des Sternchens das das da nicht hilft; schließlich ist der * ja generell erlaubt, er ist da nur syntaktisch falsch.

Den Butler kenn ich nicht, aber mit Textwrangler als Editor bist Du sicher besser bedient. Textwrangler kann auch Texte mit verschiedenen Zeilentrennern speichern (Mac,Win,Linux) Zeichensätze konvertieren und auch Texte ganz gezielt mit anderem Zeichensatz erneut öffnen. Auch die integrierte FTP-Unterstützung wird Dir später vielleicht nutzen.
 
  • Gefällt mir
Reaktionen: jehudin
Textwrangler hat die praktische Funktion "Zap Gremlins". Das ist ein bißchen kryptisch benannt bedeutet aber nur, das alle ungültige Sonderzeichen aus dem Code entfernt werden. Ich fürchte nur im falle des Sternchens das das da nicht hilft; schließlich ist der * ja generell erlaubt, er ist da nur syntaktisch falsch.

Den Butler kenn ich nicht, aber mit Textwrangler als Editor bist Du sicher besser bedient. Textwrangler kann auch Texte mit verschiedenen Zeilentrennern speichern (Mac,Win,Linux) Zeichensätze konvertieren und auch Texte ganz gezielt mit anderem Zeichensatz erneut öffnen. Auch die integrierte FTP-Unterstützung wird Dir später vielleicht nutzen.

"Zap Gremlins" werde ich anschauen danke.

Die Leerzeichen wurden manchmal zu Sternchen, manchmal zu Unterstrichen usw. völlig wirr!

Butler ist kein Editor, Butler ist ein Pasteboard-Programm und noch vieles anderes ...

Als Texteditor werde ich ganz klar TextWrangler benutzen.

Ohne Pasteboard-Programm fühle ich mich ziemlich aufgeschmissen!

lg

Wurzelchensen
 
Das geht noch besser ;)
PHP:
if ($cnt = count ($name)) 

for ( $i=0; $i < $cnt; $i++ ) // do something

Textwrangler hat die praktische Funktion "Zap Gremlins". Das ist ein bißchen kryptisch benannt bedeutet aber nur, das alle ungültige Sonderzeichen aus dem Code entfernt werden. Ich fürchte nur im falle des Sternchens das das da nicht hilft; schließlich ist der * ja generell erlaubt, er ist da nur syntaktisch falsch.

Auf einigen Websites (z.B. php.net - bei peterkropff.de auch) werden die Beispiele mit "none breaking spaces" ( &nbsp; ) formatiert. Im TextWrangler kann man "Show invisibles" aktivieren; dann sieht der umgewandelte Inhalt der Zwischenablage beispielsweise so aus: $subject•=•"abcdef";

Wenn man über die Funktion "Translate" den Text in Html umwandelt, wird aus dem Bulletpoint wieder ein &nbsp; Mit "Convert to ASCII" werden die Zeichen durch Leerzeichen ersetzt, mit "Zap Gremlins" kann man ja entscheiden, was mit den unsichtbaren Zeichen geschehen soll - setze ich die Zwischenablage direkt hier im Antwortdialog ein, werden die unbekannten Zeichen durch einen Asterix ersetzt - das Zeichen entsteht also erst später.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: jehudin
Zurück
Oben Unten