php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Jobs und Projekte > Projekthilfe
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #16 (permalink)  
Alt 25-06-2008, 17:39
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Griecherus.

Grundsätzlich habe ich gelernt, das Variablen in ' ' als Text geschrieben werden und in " " aufgelöst und ihr Inhalt dargestellt wird.
Weiter habe ich im Handbuch nachgeschaut und dort wird der einzutragende Wert in htmlentities() als String gekennzeichnet, so das ich das so richtig gemacht zu haben gedacht hatte.

Gruß
Estrela
Mit Zitat antworten
  #17 (permalink)  
Alt 25-06-2008, 17:51
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Seufz ... wie kann man denn nur ... die Variable ist schon vom Typ String, also warum packt man sie nochmals in Anführungszeichen rein? Damit es zu String wird? Oder doppel hält besser, oder was

Fazit: Streng mal deine Gehirnzellen etwas an, dann kommt sowas nich zustande.

Also:

falsch => function("$myvar");

richtig => function($myvar);

btw: wir helfen hier schon mal gern, aber meinst du nicht, dass du deine Grundlagenkenntnisse mal nachholen sollst, bevor du weiter fragst? Denn deine Topics sind elend lang und nur mit Grundlagenfragen befüllt.
Mit Zitat antworten
  #18 (permalink)  
Alt 25-06-2008, 17:55
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Variablen in Anführungszeichen werden substituiert, das ist richtig. Du solltest dann aber auch wissen, dass Anführungszeichen als Delimiter (Begrenzer) einer Zeichenkette dienen, die es erlauben, eingebettete Variablen zu substituieren. Beispiel:
PHP-Code:
echo "Mein Name ist $name.";       // bzw.
echo "Mein Name ist {$name}."      // oder (imho am saubersten)
echo 'Mein Name ist ' $name '.'
Anführungszeichen gehören nicht um lose Variablen. Wenn du ein Typecasting (Konvertierung des Typs nach bspw. String) durchführen möchtest, gibt es dafür Funktionen und ein Konstrukt:
PHP-Code:
settype($var'string'); // oder
$var strval($var);     // oder
$var = (string)$var;     // mein Favorit 
In deinem Fall wäre aber auch das unnütz, denn deine Variable ist ja bereits vom Typ String.

Geändert von Griecherus (25-06-2008 um 17:58 Uhr)
Mit Zitat antworten
  #19 (permalink)  
Alt 25-06-2008, 23:25
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo zusammen.

Ich wußte halt noch nicht, das die Beschreibung im Handbuch sich auf den Inhalt bezieht und nicht auf die äußere Darstellung, soll heißen, ich dachte, das die Kennzeichnung auf jeden Fall wie ein String zu sein hat. Danke für die Aufklärung.

Ich bin jetzt schon mal soweit gekommen:

PHP-Code:
<?php
$DatNam 
'Dateinamen.txt';
$handle fopen ($DatNam'w+');
fclose ($handle);
$VorbNeu 'Vorbereitet_Neu.txt';
$handle2 fopen ($VorbNeu'w+');
fclose ($handle2);
$ArbDat 'Vorbereitet.txt';
$ArbZ file ($ArbDat);
foreach (
$ArbZ as $value) { 

                                
$TeilZeil explode("#"$value);
                                
//echo $TeilZeil[0];
                                
$TeilZeil[0] = manipulate($TeilZeil[0]);
                                
//echo '<b>'.$TeilZeil[0].'</b>'.'<br />';
                          
}

                            
function 
manipulate($ManiTeilZeil) {
                            
$ManiTeilZeilh htmlentities ($ManiTeilZeil);
                            
$ManiTeilZeilh str_replace('&Aacute;','A',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Agrave;','A',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Acirc;','A',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Atilde;','A',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&aacute;','a',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&agrave;','a',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&acirc;','a',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&atilde;','a',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Auml;','Ae',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&auml;','ae',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Ccedil;','C',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&ccedil;','c',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Eacute;','E',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Egrave;','E',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Ecirc;','E',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&eacute;','e',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&egrave;','e',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&ecirc;','e',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Iacute;','I',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Igrave;','I',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&iacute;','i',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&igrave;','i',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Otilde;','O',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Ocirc;','O',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Oacute;','O',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&otilde;','o',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&ocirc;','o',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&oacute;','o',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Ouml;','Oe',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&ouml;','oe',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Uacute;','U',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&uacute;','u',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&Uuml;','Ue',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace('&uuml;','ue',$ManiTeilZeilh);
                            
$ManiTeilZeilh str_replace(' ','',$ManiTeilZeilh);
                            
$ManiTeilZeilh2 = ($ManiTeilZeilh.'\n'); // Zeile 63
                            
$ManiZeilZusG $ManiTeilZeilh '.php">';
                            
$ManiZeilZusG $ManiZeilZusG $ManiTeilZeil;
                            
$ManiZeilZusG $ManiZeilZusG '</a>';
                            
$handle fopen ('Dateinamen.txt''a+');
                            
fwrite ($handle$ManiTeilZeilh2);
                            
fclose ($handle);
                            
/*$handle = fopen ('Vorbereitet_Neu.txt', 'a+');
                            fwrite ($handle, $TeilZeil[1].$ManiZeilZusG);
                            fclose ($handle);*/
                            
echo '<b>'.$ManiZeilZusG.'</b>'.'<br />';
                            echo 
'<b>'.$ManiTeilZeil.'</b>'.'<br />';
                            
                            return 
$ManiTeilZeilh;
                                 }

//echo $TeilZeil[0]; 

?>
Sicherlich nicht sehr elegant mit den vielen str_replace, aber es funktioniert und die Kür kommt nach der Pflicht.
Jetzt habe ich noch zwei Sachen.
Erstens möchte ich die Eintragungen in Dateinamen.txt zeilenweise haben, was ich in Zeile 63 versucht habe aber so nicht klappt.
Zweitens habe ich festgestellt, das ich in der Funktion nicht auf Arrays außerhalb zugreifen kann. Wie füge ich jetzt $TeilZeil[1] und $ManiZeilZusG zusammen?

Gruß
Estrela

Geändert von Estrela (26-06-2008 um 00:14 Uhr)
Mit Zitat antworten
  #20 (permalink)  
Alt 26-06-2008, 07:56
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Das du innerhalb einer funktion auf Variablen außerhalb die Nicht Als GLOBAL bezeichnet sind nicht Zugreifen kannst ist gewollt.

PHP-Code:
$var="ich Bin zu sehen";
function 
zeigdich()
{
    echo 
$var;
}

function 
zeigdich2($var)
{
    echo 
$var;
}
function 
zeigdich3()
{
    global 
$var;
    echo 
$var;
}

zeigdich();
echo 
"<br />";
zeigdich2($var);
echo 
"<br />";
zeigdich3(); 
Aber das is hier auch wieder Grundlage Parameter Übergabe ... Variablen behandlung
leider find ich gerade die entsprechende passage im Handbuch nicht ums dir um die ohren zu hauen aber ...
der werte Herr Kroppf hats auch ziemlich gut beschrieben ...

Siehe Hier

Wie währe es als wenn du nach zich hinweisen dich erstmal ausführlich durch seine Seite arbeitest

ps: er erklärts sogar verständlicher als das PHP handbuch
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #21 (permalink)  
Alt 26-06-2008, 08:13
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

http://www.php.net/manual/en/languag...bles.scope.php

Bezüglich deiner str_replace() Orgie hatte ich ganz zu Beginn schon mal einen Vorschlag gemacht, Stichwort Array.
Mit Zitat antworten
  #22 (permalink)  
Alt 26-06-2008, 18:15
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo zusammen.

Ich habe hier Schwierigkeiten, das Array $TeilZeil[1] in die Funktion zu importieren.
Habe auch schon versucht, das Array einer Variablen zuzuweisen ($TeilZeil[1] = $TeilZeilB und diese dann zu importieren, war auch nichts.
Momentan habe ich das so versucht:
PHP-Code:
fwrite ($handle$ManiTeilZeil.$GLOBALS[$TeilZeil[1]].$ManiZeilZusG); // Zeile 75 
Die Fehlermeldung:
Notice: Undefined variable: TeilZeil in /home/santodai/public_html/test/test_4.php on line 75
Das bedeutet doch, das er in dieser Konstruktion das Array nicht als Variable anerkennt.
Wenn ich aber außerhalb der Funktion dem Array $TeilZeil[1] eine Variable zuordne, etwa so:
$TeilZeil[1] = $TeilZeilB; //Zeile 21
Dann kommt die Fehlermeldung:
Notice: Undefined variable: TeilZeilB in /home/santodai/public_html/test/test_4.php on line 21
Das bedeutet doch, das ich das Array keiner Variablen zuordnen kann.
Wie gehe ich richtig vor, um das Array in der Funktion nutzen zu können.
In den angesprochenen Webseiten habe ich dazu auch nichts gefunden.

Gruß
Estrela
Mit Zitat antworten
  #23 (permalink)  
Alt 26-06-2008, 18:22
case
 Registrierter Benutzer
Links : Onlinestatus : case ist offline
Registriert seit: Mar 2007
Beiträge: 265
case ist zur Zeit noch ein unbeschriebenes Blatt
case eine Nachricht über ICQ schicken
Standard

Ich würde dir empfehlen, das error_reporting vielleicht mal etwas runter *duck* zu drehen...

Diese Notices kannst du erstmal ignorieren. Sie rühren daher, dass du die Variable vorher nicht definiert hast.

machst du vorher ein

PHP-Code:
$TeilZeil = array(); 
dann sollte diese Meldung nicht mehr kommen.

Aber wie schon gesagt, dreh das error_reporting runter, weil es funktioniert, es ist nur eine Notice.....
__________________
signed oder unsigned... das ist hier die Frage
Mit Zitat antworten
  #24 (permalink)  
Alt 26-06-2008, 19:22
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Nein!

Auf keinen Fall solltest du das error_reporting abdrehen. Es sind zwar nur Notices, aber sie machen dich darauf aufmerksam, dass eine Variable nicht existiert. Das ist gut zu wissen.
Anfänger sollten error_reporting immer volle Pulle aufdrehen.

Übrigens genügt es nicht, die Variable wie vorgeschlagen zu definieren. Dann wirst du sofort die nächste Fehlermeldung "undefined Index" erhalten.

Was machst du da eigentlich? Kann man deinen aktuellen Code mal komplett sehen?
(str_replace()-Orgien und ähnliches bitte durch entsprechenden Kommentar ersetzen um den Code kurz zu halten.)
Mit Zitat antworten
  #25 (permalink)  
Alt 26-06-2008, 21:02
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo onemorenerd.

Bin ganz Deiner Meinung, was das error_reporting betrifft. Ich bin für jede Information dankbar und die zweite Fehlermeldung habe ich auch schon bekommen.
Mit dem Import des Arrays will ich ja jetzt meine Links zusammensetzen. Ich habe auch schon einen anderen Weg gefunden, die Aufgabe zu lösen, indem ich den Teil des $TeilZeil[1], das ja den fixen Teil des Links darstellt, innerhalb der Funktion als Variable definiert habe. Damit habe ich die Aufgabe zwar gelöst, aber das Problem nicht ergründet.
Danke, das Du dabei hilfst.
Manches ($ManiZeilZusG) ist vielleicht auch umständlich, aber ich wollte es deutlich machen.
Der Code:

PHP-Code:
<?php
$DatNam 
'Dateinamen.txt';
$handle fopen ($DatNam'w+');
fclose ($handle);
$VorbNeu 'Vorbereitet_Neu.txt';
$handle2 fopen ($VorbNeu'w+');
fclose ($handle2);
$ArbDat 'Vorbereitet.txt';
$ArbZ file ($ArbDat);
foreach (
$ArbZ as $value) { 
                                
$TeilZeil explode("#"$value);
                                
$TeilZeil[0] = manipulate($TeilZeil[0]);
                          }
function 
manipulate($ManiTeilZeil) {
                            
$ManiTeilZeilh htmlentities ($ManiTeilZeil);
                            
// Hier die anderen Ersetzungen
                            
$ManiTeilZeilh str_replace(' ','',$ManiTeilZeilh);
                            
                            
$ManiZeilZusG $ManiTeilZeilh '.php">';
                            
$ManiZeilZusG $ManiZeilZusG $ManiTeilZeil;
                            
$ManiZeilZusG $ManiZeilZusG '</a>';
                            
$handle fopen ('Dateinamen.txt''a+');
                            
fwrite ($handle$ManiTeilZeilh);
                            
fclose ($handle);
                            
$TeilZeil = array();
                            
$handle fopen ('Vorbereitet_Neu.txt''a+');
                            
fwrite ($handle$ManiTeilZeil.'#'.$GLOBALS[$TeilZeil[1]].$ManiZeilZusG);
                            
fclose ($handle);
                            echo 
'<b>'.$ManiZeilZusG.'</b>'.'<br />';
                            echo 
'<b>'.$ManiTeilZeil.'</b>'.'<br />';
                            return 
$ManiTeilZeilh;
                                 }
?>
Gruß
Estrela

Edit: Ich habe noch nicht die Stelle gefunden, um die Ausgabe in den Dateien zeilenweise zu gestalten.

Geändert von Estrela (26-06-2008 um 23:42 Uhr)
Mit Zitat antworten
  #26 (permalink)  
Alt 27-06-2008, 10:05
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Oh man, der Code sieht aus wie Kraut und Rüben. Dieses Häppchen Hingewerfe bringt dich nicht weiter. Wir fangen noch mal von vorn an.

Du willst es lernen, ja? Nun, ich habe im Informatikunterricht in der Schule gelernt, wie man ein Programm entwickelt. Für funktionale Programmierung wie sie Anfänger in der Regel praktizieren, ist diese Vorgehensweise sehr geeignet.

1. Zuerst analysiert man das Problem und notiert die zur Lösung nötigen Ressourcen (Dateien, Speicher, Drucker, OS, Sprache, ...).
2. Dann zerlegt man das Problem in Teilprobleme. Dazu gehört auch, Eingaben, Ausgaben und Ressourcen für jeden Teil festzuhalten.
Das wird rekursiv wiederholt. Die Kunst ist dabei, die richtige Granularität zu treffen. Mit etwas Übung trifft man Level, wo die Teile als Programmmodule, als Klassen und als Funktionen implementiert werden können. Das letzte Level sollte auf der Befehlsebene der Programmiersprache sein. Man kann aber auch eher aufhören.
3. Aus der Beschreibung der Teilprobleme entwickelt man ein Struktogramm mit Pseudocode.
4. Das Struktogramm wird in Code in der gewählten Programmiersprache übersetzt. Jede Funktionseinheit (Funktion, Klasse, Modul, ...) wird umgehend gestestet.

Bei Autodidakten läuft das meist anders. Sie haben ein Problem im Kopf, überlegen sich kurz wie man es angehen kann und fangen sofort an zu programmieren. An deinen Threads kann man das sehr gut sehen.
Du bringst anfangs immer eine Darstellung deines Problems und deinen Lösungsansatz. Bei der Umsetzung in PHP brauchst du unsere Hilfe, weil du die Sprache nicht kennst, aber auch weil dein Lösungsansatz mangelhaft ist.

In einer Textdatei (Ressource A) sollen Zeichen entsprechend einer Tabelle (Ressource B) ersetzt und Text hinzugefügt werden. Das Ergbenis soll in eine neue Datei (Resource C) gespeichert werden.

Zerlegung in Teilprobleme, erste Iteration:
1. Text aus Datei A in Speicher holen und in Zeilen zerlegen.
2. Zeichen ersetzen / Text umschreiben.
3. Ergebnis in Datei B speichern.
Für 1. und 3. werden wir file() und file_put_contents() benutzen. 2. muss weiter zerlegt werden.
2.1. Ersetzungstabelle laden.
2.2. Zeile an Trennzeichen zerlegen.
2.3. In Teil 1 Zeichen suchen, ersetzen und Ergebnis in Variable speichern.
2.4. Wie 2.3. mit anderer Ersetzung.
2.5. Konkatenation der Originalzeile mit Variablen aus 2.3 und 2.4.

Struktogramm zeichne ich jetzt keins, aber Pseudocode muss sein.
1. text = file(Datei A);
2.1. include(Tabellendefinition);
foreach (explode(Zeilenumbruch, text) as nr => zeile)
2.2. teile = explode(trennzeichen, zeile);
2.3. ersetzt01 = str_replace(tabelle[0], tabelle[1], teile[0]);
2.4. ersetzt02 = str_replace(tabelle[0], tabelle[2|, teile[0]);
2.5. text[nr] = zeile + ersetzt01 + '.php">' + ersetzt02 + '</a>';
endforeach
3. file_put_contents(Datei B, text);

Jetzt bist du dran. Übersetze den Pseudocode mit Hilfe des Manuals in PHP.
Ich bin dir mit dem Pseudocode weit entgegen gekommen, es ist schon fast PHP. Aber ich habe auch Fehler gemacht, etwa im Umgang mit dem Zeilenumbruch.

Viel Spaß!
Mit Zitat antworten
  #27 (permalink)  
Alt 27-06-2008, 10:24
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Ich hätte ihr jetzt noch glatt weiter geholfen aber onemorenerd wir belassen es dabei.

und warten ob Estrela es diesmal besser hinbekommt ...

was uns aber zur problemlösung bei der ganzen sache gefehlt hat Wie sieht dateiname.txt eigentlich aus?

wie steht es da drin.

aber egal ... schön geschrieben onemorenerd

grüsse von nemm Autodidakten
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #28 (permalink)  
Alt 28-06-2008, 18:22
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo onemorenerd.

Danke für Deine ausführliche Analyse und Hilfestellung.

So ähnlich habe ich es ja auch in der Ausgangslage geschildert, weshalb ich mich ein wenig gegen "aber auch weil dein Lösungsansatz mangelhaft ist" wehren möchte.
Hättest Du unvollkommen gesagt, Ok, unvollständig geht auch noch aber von mangelhaft kann hier, denke ich, nicht gesprochen werden.

Mein Lösungsansatz war doch ähnlich wie der, den Du jetzt freundlicherweise in Pseudocode dargestellt hast.
Davon bin ich abgerückt, weil die gegebene Hilfestellung einen anderen Weg über urlencoded zu htmlentities wies.
Ich bin noch nicht in der Lage, eigenständig Programme umzusetzen und so habe ich mit htmlentities gearbeitet, weil meine Aufgabe damit auch lösbar ist.
Der ursprüngliche Ansatz war breiter gefasst, was sich ja auch in der Überschrift ausdrückt, so das ich Dir dankbar bin, das Du jetzt wieder darauf zurückkommst.

Weiterhin habe ich auch Deinen Vorschlag zu dem multidimensionalen Array aufgegriffen und ich muß sagen, läßt sich sehr gut mit arbeiten.
Optimal währe es gewesen, wenn ich nicht alles manuel eintragen hätte müssen, sondern wenn ich die Namen definiert und die Trennzeichen eingegeben hätte, sollte das über den Code laufen, also automatisch eingelesen werden.
Kann ich ja vielleicht nur noch nicht.
Eine Unstimmigkeit bleibt noch, nähmlich der zusammengesetzte Link ist nach $TeilZeil[1] in der Datei Vorbereitet_Neu.txt unterbrochen. Also wenn ich den Link in der Datei markiere, wird nur der Teil bis einschlißlich $TeilZeil[1] markiert.
Weiß Du, woran das liegt und sagst es Uns hier?

Der Code:
PHP-Code:
<?php
$DatNam 
'Dateinamen.txt';
$handle fopen ($DatNam'w+');
fclose ($handle);
$VorbNeu 'Vorbereitet_Neu.txt';
$handle2 fopen ($VorbNeu'w+');
fclose ($handle2);
$ArbDat 'Vorbereitet.txt';
$ArbZ file ($ArbDat);

$chars = array(
    
'replace' => array('A','A','A','A','a','a','a','a','Ae','ae','C','c','E','E','E','e','e','e','I','I','i','i','O','O','O',
'o','o','o','Oe','oe','U','u','Ue','ue',),
    
'browser' => array('Á','À','Â','Ã','á','à','â','ã','Ä','ä','Ç','ç','É','È','Ê','é','è','ê','Í','Ì','í','ì','Õ','Ô','Ó',
'õ','ô','ó','Ö','ö','Ú','ú','Ü','ü',),
    
'filesystem' => array('%C1','%C0','%C2','%C3','%E1','%E0','%E2','%E3','%C4','%E4','%C7','%E7','%C9','%C8','%CA','%E9',
'%E8','%EA','%CD','%CC','%ED','%EC','%D5','%D4','%D3','%F5','%F4','%F3','%D6','%F6','%DA','%FA','%DC','%FC',),
    
'source' => array('&Aacute;','&Agrave;','&Acirc;','&Atilde;','&aacute;','&agrave;','&acirc;','&atilde;','&Auml;','&auml;',
'&Ccedil;','&ccedil;','&Eacute;','&Egrave;','&Ecirc;','&eacute;','&egrave;','&ecirc;','&Iacute;','&Igrave;',
'&iacute;','&igrave;','&Otilde;','&Ocirc;','&Oacute;','&otilde;','&ocirc;','&oacute;','&Ouml;','&ouml;','&Uacute;',
'&uacute;','&Uuml;','&uuml;',),
);

foreach (
$ArbZ as $value) { 
                                
$TeilZeil explode("#"$value);
                                
$TeilZeil[0] = str_replace(' ','',$TeilZeil[0]);
                                
$TeilZeil[1] = str_replace(' ','',$TeilZeil[1]);
                                
$TeilZeilRepl str_replace($chars['browser'], $chars['replace'], $TeilZeil[0]);
                                
$TeilZeilSour str_replace($chars['browser'], $chars['source'], $TeilZeil[0]);
                                
/*$handle = fopen ($DatNam, 'a');
                                file_put_contents ($DatNam , $TeilZeilRepl); // Speichert leider nur den letzten Namen, darum:*/
                                
$handle2 fopen ($VorbNeu 'a');
                                
fwrite ($handle2$TeilZeil[0].'#'.$TeilZeil[1].$TeilZeilRepl.'.php">'.$TeilZeilSour.'</a>'."\n");
                                
fclose ($handle2);
                                
$handle fopen ($DatNam 'a');
                                
fwrite ($handle$TeilZeilRepl."\n");
                                
fclose ($handle);
                          }
echo 
'Fertig';
?>


<?php
Sieht doch schon viel übersichtlicher aus, denke ich.

Gruß
Estrela

Geändert von Estrela (28-06-2008 um 21:02 Uhr)
Mit Zitat antworten
  #29 (permalink)  
Alt 29-06-2008, 04:53
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Okay, ich korrigiere mich: Dein Lösungsansatz ist unvollkommen und unvollständig.

Deiner kleinen Unstimmigkeit kommst du mit ein paar Testausgaben selbst auf die Spur.
Aber vorher solltest du mal vergleichen wie oft du eine Datei öffnest und wie oft das in meinem Pseudocode passiert.
Mit Zitat antworten
  #30 (permalink)  
Alt 01-07-2008, 15:20
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo onemorenerd.

Du arbeitest mit file, include und file_put_contens.
Bei meinem Code wird in jedem Durchgang der foreach Schleife die Datei geöffnet, beschrieben und geschlossen. OK, nicht sehr resourceschonend, aber es funktioniert.
Den Befehl file_put_contens bekomme ich nicht so eingesetzt, das er das gewünschte Ergebnis liefert.
Wie im Code des vorigen Postings in den auskommentierten Zeilen ersichtlich, habe ich ja versucht, den Befehl einzusetzen, aber er lieferte nur das letzte Wort.
Darüber kam ich zu der Erkenntnis, das er alles vorherige ja überschrieben hat, so das logischerweise auch nur der letzte Inhalt des letzten Durchgangs der foreach Schleife gespeichert ist. Also habe ich hier folgendes ausprobiert:

PHP-Code:
<?php
<?php
$DatNam 
'Dateinamen.txt';
$VorbNeu 'Vorbereitet_Neu.txt'
$ArbDat 'Vorbereitet.txt';
$ArbZ file ($ArbDat);

$chars = array(
    
'replace' => array('A','A','A','A','a','a','a','a','Ae','ae','C','c','E','E','E','e','e','e','I','I','i','i','O','O','O',
'o','o','o','Oe','oe','U','u','Ue','ue',),
    
'browser' => array('Á','À','Â','Ã','á','à','â','ã','Ä','ä','Ç','ç','É','È','Ê','é','è','ê','Í','Ì','í','ì','Õ','Ô','Ó',
'õ','ô','ó','Ö','ö','Ú','ú','Ü','ü',),
    
'filesystem' => array('%C1','%C0','%C2','%C3','%E1','%E0','%E2','%E3','%C4','%E4','%C7','%E7','%C9','%C8','%CA','%E9',
'%E8','%EA','%CD','%CC','%ED','%EC','%D5','%D4','%D3','%F5','%F4','%F3','%D6','%F6','%DA','%FA','%DC','%FC',),
    
'source' => array('&Aacute;','&Agrave;','&Acirc;','&Atilde;','&aacute;','&agrave;','&acirc;','&atilde;','&Auml;','&auml;','&Ccedil;','&ccedil;',
'&Eacute;','&Egrave;','&Ecirc;','&eacute;','&egrave;','&ecirc;','&Iacute;','&Igrave;','&iacute;','&igrave;','&Otilde;','&Ocirc;',
'&Oacute;','&otilde;','&ocirc;','&oacute;','&Ouml;','&ouml;','&Uacute;','&uacute;','&Uuml;','&uuml;',),
);

foreach (
$ArbZ as $value) { 
                                
$TeilZeil explode("#"$value);
                                
$TeilZeil[0] = str_replace(' ','',$TeilZeil[0]);
                                
$TeilZeil[1] = str_replace(' ','',$TeilZeil[1]);
                                
$TeilZeilRepl str_replace($chars['browser'], $chars['replace'], $TeilZeil[0]);
                                echo 
$TeilZeilRepl.'<br  />';
                                
file_put_contents ($DatNam $TeilZeilRepl['FILE_APPEND']);
                                
$TeilZeilSour str_replace($chars['browser'], $chars['source'], $TeilZeil[0]);
                                echo 
$TeilZeilSour.'<br  />';
                          }
file_put_contents ($VorbNeu $TeilZeil[0].'#'.$TeilZeil[1].$TeilZeilRepl.'.php">'.$TeilZeilSour.'</a>'."\n");

echo 
'Fertig';

?>
Die ersten Dateiöffnungen mit w+ konnte ich ja weglassen, weil file_put_contens sowieso alles überschreibt.
Weil dieser Befehl ja hier in der Schleife eingesetzt ist, habe ich versucht, das Flag FILE_APPEND zu setzen, um die Daten in der nächsten Zeile anzuhängen.
Aber entgegen der Vermutung steht jetzt nur noch ein Buchstabe in der Datei.
Den letzten Einsatz des file_put_contens habe ich außerhalb der Schleife plaziert, trotzdem liefert er nur den letzten Eintrag.
Ich komme also zu dem Schluß, das ich den Befehl file_put_contens hier nicht richtig einsetzen kann.
Kannst Du mir zeigen, wie der Befehl hier richtig eingesetzt wird?
Danach kümmere ich mich um die Includierung der Sonderzeichen, um die händischen Eintragungen zu umgehen und danach um die nicht zusammen hängenden Satzteile.

Gruß
Estrela

Edit: Die echo´s zeigen überigens alles vollständig an.

Geändert von Estrela (01-07-2008 um 15:35 Uhr)
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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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