php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

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 02-08-2004, 02:00
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Question String mit .txt-Datei vergleichen + ersetzen

Hallo zusammen,

ich möchte folgendes umsetzen, aber irgendwie fehlt mir noch die zündende Idee.

Ich habe eine .txt-Datei in der diverse Begriffe und Buchstabenkombinationen stehen, die jeweils mit Kommata getrennt sind.
txt-Datei: begriff1a,begriff1b,...

Des Weiteren habe ich einen String, der einen bis x Begriffe enthält, die jeweils durch ein Leerzeichen getrennt sind.
String: begriff2a begriff2b ...

Jetzt möchte ich für jeden einzelnen Begriff aus dem String überprüfen, ob eine Übereinstimmung mit irgendeinem der Begriffe aus der txt-Datei besteht. Ist dies der Fall, soll der betroffene Begriff aus dem String entfernt werden.

Mit preg_replace() habe ich es leider nicht hinbekommen.

Würde mich sehr freuen, wenn mir jemand mal einen Denkanstoß geben könnte, gerne auch in Code-Form...

Danke im voraus und viele Grüße
Langer
Mit Zitat antworten
  #2 (permalink)  
Alt 02-08-2004, 02:41
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: String mit .txt-Datei vergleichen + ersetzen

Zitat:
Würde mich sehr freuen, wenn mir jemand mal einen Denkanstoß geben könnte, gerne auch in Code-Form...
es geht ... mit explode beide texte aufteilen in arrays, dann mit array_diff (string - textdatei) bearbeiten, ...

array_diff() gibt ein Array mit allen Werten von string, welche nicht in textdatei enthalten sind, zurück.

http://www.php-resource.de/manual.ph...ion.array-diff
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #3 (permalink)  
Alt 02-08-2004, 15:39
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

schonmal danke für den Tipp.

$noise enthält ein Array mit den Begriffen, die aus dem Array $suchstring entfernt werden sollen

Einlesen und explode funktioniert ohne Probleme. Wenn ich die beiden Arrays allerdings vergleiche, wirft er mir die in $noise enthaltenen Begriffe aus $suchstring nicht raus. Das Array $suchstring_diff stimmt mit dem Array $suchstring aber vollkommen überein.

PHP-Code:
$noisedatei "noise.txt";
$txt fopen($noisedatei,"r");

$noise fread ($txtfilesize ($noisedatei));
                    
fclose($txt);
                    
$suchstring explode (" "$suchstring);

$noise explode (","$noise);

$suchstring_diff array_diff ($suchstring$noise);

print_r($suchstring_diff); 
Hat noch jemand eine Idee, was da falsch sein könnte?

Danke im voraus und viele Grüße
Langer

Geändert von langerxxx (02-08-2004 um 16:02 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 02-08-2004, 15:57
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wenn ich die beiden Arrays allerdings vergleiche, wirft er mir die in $noise enthaltenen Begriffe aus $suchstring nicht raus. Das Array $suchstring bleibt unverändert bestehen.
ja, so ist es auch vorgesehen. die funktion gibt das erzeugte array zurück, die originale bleiben unverändert. wo ist das problem?
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #5 (permalink)  
Alt 02-08-2004, 16:03
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Oh, sorry, da hab ich mich falsch ausgedrückt!

In $suchstring_diff steht das gleiche wie in $suchstring, auch wenn es definitv übereinstimmende Begriffe zwischen $noise und $suchstring gibt...

Danke und viele Grüße
Langer
Mit Zitat antworten
  #6 (permalink)  
Alt 02-08-2004, 16:15
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein!

ich habs doch eben noch einmal ausprobiert, bei mir funktioniert es ...

hast du beide arrays mal per var_dump ausgegeben?
sind elemente wirklich gleich?
eventuell trim() angewendet?
...
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #7 (permalink)  
Alt 02-08-2004, 16:59
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Thx für den Hinweis, eine Fehlerquelle ist schonmal rausgefallen. Da hatten sich tatsächlich Leerzeichen aus der txt-Datei eingeschlichen.

Ich habe jetzt mal beide Arrays mit var_dump ausgegeben. Was merkwürdig ist:

Eintrag zu "Ihre" aus $suchstring:
[0]=> string(4) "Ihre"

Eintrag zu "Ihre" aus $noise:
[20]=> string(11) "Ihre"

Zusatz von 18:09 h:

Ich habe mir gerade mal den zugehörigen HTML-Quelltext zu var_dump angeschaut, da wird "Ihre" folgernmaßen dargestellt:
[20]=> string(11) " I h r e "

Wenn ich es recht verstehe, sind die enthaltenen Buchstaben gleich, aber durch die unterschiedliche Länge sind die String trotzdem nicht gleich.

Woran könnte das liegen? Kann man das irgendwie korrigieren?

Danke und viele Grüße
Langer

Geändert von langerxxx (02-08-2004 um 18:14 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 02-08-2004, 18:13
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

probier mal
PHP-Code:
for ($i=0$i<strlen($noise[20]); $i++)
  echo 
'Char: ['.$noise[20][$i].'] - Code:'.ord($noise[20][$i]).']<br />'
ausgabe?

edit:
Zitat:
zugehörigen HTML-Quelltext zu var_dump angeschaut
der ausgabe im browser solltest du in solchen fällen niemals trauen, immer in den quellcode schauen ...

dann such die stelle, wo der code das erzeugt, was du nicht willst ...
__________________
Die Zeit hat ihre Kinder längst gefressen

Geändert von derHund (02-08-2004 um 18:15 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 02-08-2004, 18:17
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$noise explode (","$noise); 
sowas ist auch immer sehr unelegant ...
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #10 (permalink)  
Alt 02-08-2004, 18:21
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

die Ausgabe ist folgende:

Char: [] - Code:0]
Char: [I] - Code:73]
Char: [] - Code:0]
Char: [h] - Code:104]
Char: [] - Code:0]
Char: [r] - Code:114]
Char: [] - Code:0]
Char: [e] - Code:101]
Char: [] - Code:0]
Char: [] - Code:0]
Char: [] - Code:0]


Ähnlich wie im HTML-Quelltext, was ich im obigen Beitrag noch ergänzt hatte. D.h. er setzt in den String irgendwelche Zeichen rein.

Leerzeichen scheinen es ja nicht zu sein, die werden über
PHP-Code:
$noise preg_replace("/\s/s","",$noise); 
ja bereits entfernt.

Oh man... Wie kann man die "überflüssigen" Zeichen denn entfernen?

Danke dir schonmal super viel für deine bisherige Hilfe!!!!

Viele Grüße
Langer
Mit Zitat antworten
  #11 (permalink)  
Alt 02-08-2004, 18:26
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
PHP-Code:
$noise explode (","$noise); 
sowas ist auch immer sehr unelegant ...
In wie fern unelegant?


Zitat:
dann such die stelle, wo der code das erzeugt, was du nicht willst ...
Tja, gute Frage. Eigentlich kann es da nur eine Stelle geben. Das wäre dann das auslesen der txt-Datei... Aber im txt-Format sollten doch eigentlich keine überflüssigen Zeichen stehen...

Danke und Gruß
Langer
Mit Zitat antworten
  #12 (permalink)  
Alt 02-08-2004, 18:29
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

häng mal bitte die noise.txt dran, und zeig deinen gesamten, verarbeitenden code ...
Zitat:
Leerzeichen scheinen es ja nicht zu sein,
nee ^^

versuch mal, per replace das zeichen chr(0) zu entfernen ...

unelegenat ist imho,

weil du den string nach array castest und dann überschreibst, naja, steh ich halt nicht so drauf ...
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #13 (permalink)  
Alt 02-08-2004, 18:46
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@derHund:

Thx für deine Hilfe. Das Problem liegt wirklich am auslesen der txt-Datei. Aus irgendeinem Grund setzt PHP dabei dieses chr(0) zwischen die Buchstaben.

Ich habe daraus jetzt einfach eine php-Datei gemacht und den String in eine Variable geschrieben.

Jetzt funktioniert alles wunderbar!

Danke vielmals, ohne deine Hilfe hätte ich das nicht hinbekommen!

Grüße
Langer
Mit Zitat antworten
  #14 (permalink)  
Alt 02-08-2004, 18:50
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von langerxxx
Aus irgendeinem Grund setzt PHP dabei dieses chr(0) zwischen die Buchstaben.
na ja, ich frage mich sowieso, warum du für das auslesen einer ASCII-datei die funktion fread nutzt, die für das auslesen von binärdaten gedacht ist ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #15 (permalink)  
Alt 02-08-2004, 18:53
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Danke vielmals,
bitte, bitte.
__________________
Die Zeit hat ihre Kinder längst gefressen
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

OnPremise versus Cloud - das richtige System finden
Wir beleuchten in diesem Artikel, die Vor- und Nachteile für Cloud oder OnPremise Systemen. Und warum es definitiv Zeit wird in die Cloud zu wechseln.

09.05.2022 | julia_mjr

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni


 

Aktuelle PHP Scripte

MyPHPlib-Bibliotheksverwaltung

MyPHPlib ist eine Scriptsammlung, mit der die Bibliotheksverwaltung incl. Ausleihe und Recherche gelingt. Die Scriptsammlung wird seit Mitte 2005 entwickelt und ist besonders an den Bedürfnissen von Schulen angepasst.

11.08.2022 RobertG | Kategorie: PHP/ Management
responsive vertikales Menu

Diese Menu basiert auf php, jQuery, css und ajax. Wer sein Menu mit nested sets vertikal realisieren will, findet darin eine gute Lösung.

11.08.2022 COVISIONMEDIA | Kategorie: JAVASCRIPT/ Navigation
VIZUKA Affiliate CMS & Preisvergleich Portal ansehen VIZUKA Affiliate CMS & Preisvergleich Portal

Produktkalalog mit Preisvergleichfunktion, Gutscheinverwaltung und umfangreichem CMS. Live-Produktdaten! Nischen- oder Allg. Produktkatalog von hunderten Shops und über 60 Millionen Produkte mit wenigen Klicks erstellen. Mitglieder- & Werbekundenbereich.

10.08.2022 VIZUKA | Kategorie: PHP/ Affiliate-Programme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:54 Uhr.