PHP Fehlermeldung

back4ever1

Cadet 1st Year
Registriert
Mai 2023
Beiträge
8
Hi

Kann mal bitte einer drübergucken wo der Fehler liegt ?

PHP:
<?php
$in = "edit1.txt"

# dateiname der ausgabedatei
$out = "edit2.txt"

# zeilenweise die eingabe lesen und nach passenden wörtern suchen
Get-Content $in | ForEach-Object {

    # suche nach Wörtern
    $pattern = "'([^']{1,25})'"

    # übereinstimmungen finden
    $hit = [regex]::Matches($_, $pattern)

    # gefundenes rein in edit2.txt des derzeitgen pfades
    foreach ($hit in $hit) {
        $word = $hit.Groups[1].Value
        Add-Content -Path $out -Value $word
    }
}?>

wüsste nicht was an Line5 falsch wäre :/

Fehler: Parse error: syntax error, unexpected variable "$out" in C:\xampp\htdocs\skript.php on line 5

Danke
 
Da fehlen einige Strichpunkte am Ende von jedem Statement:)
 
  • Gefällt mir
Reaktionen: redjack1000 und tollertyp
könnte mir bitte jemand en ausgebesserten code zukommen lassen ?
 
back4ever1 schrieb:
könnte mir bitte jemand en ausgebesserten code zukommen lassen ?
könnte mir bitte jemand ne vernünftige Problembeschreibung zukommen lassen ?

Edit: Mist, habe Groß-/Kleinschreibung benutzt :-(
 
  • Gefällt mir
Reaktionen: Der Lord
grob und ungetestet

und bitte xampp nach oeglichkeit nicht nutzen.. braucht es auch nicht um ein php script laufen zu lassen

grob so:
PHP:
<?php
$in = "edit1.txt";
$out = "edit2.txt";
$pattern = "/'([^']{1,25})'/";
$lines = file($in, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $line) {
    preg_match_all($pattern, $line, $matches);
    if (isset($matches[1])) {
        foreach ($matches[1] as $match) {
            file_put_contents($out, $match . "\n", FILE_APPEND);
        }
    }
}
?>

disclaimer: copy paste und auf dich angepasst. Ungetestet. Ich kann kein PHP.
 
Das ist allein schon deswegen kein PHP, weil in PHP Statements mit einem Semikolon geschlossen werden müssen.

Und dann gleich nach der ersten Zeile "unexpected variable". :lol:
 
madmax2010 schrieb:
grob und ungetestet

und bitte xampp nach oeglichkeit nicht nutzen.. braucht es auch nicht um ein php script laufen zu lassen

grob so:
PHP:
<?php
$in = "edit1.txt";
$out = "edit2.txt";
$pattern = "/'([^']{1,25})'/";
$lines = file($in, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $line) {
    preg_match_all($pattern, $line, $matches);
    if (isset($matches[1])) {
        foreach ($matches[1] as $match) {
            file_put_contents($out, $match . "\n", FILE_APPEND);
        }
    }
}
?>

disclaimer: copy paste und auf dich angepasst. Ungetestet. Ich kann kein PHP.
geht in die richtige richtung..... ^^

fehler in zeile 5 ist nur der erste von vielen.... aber hier hatte der interpreter schon keinen bock mehr...
keine semikolons, zeile 8 ist auch nicht php konform... etc. etc.

wat soll der kram denn bewirken? das wäre schonmal gut zu wissen.. ^^
 
@Falc410 habe dir ne pn geschickt

Große Datei 5Mio Zeilen
Alle Wörter in "'" müssen kopiert werden

Voraussetzung:
Das Wort darf nicht als mehr 25 Zeichen beinhalten !
d.h alle längeren in 'Wort' müssen ignoriert werden

wäre top wenn mir jemand helfen könnte

mfg
 
Also du willst eine Textdatei zeilenweise einlesen und jede Zeile prüfen ob diese mehr als 25 Zeichen hat und falls ja in eine neue Datei schreiben?

1. Problem richtig beschreiben
2. Überlegen wo und mit welchem Interpreter das laufen soll (PHP, Powershell, Python, Bash, etc)
3. selbst versuchen und bei konkreten Problemen fragen

P.S. Um die Länge eines Strings zu prüfen, braucht es keine RegEx
P.P.S. Hausaufgaben selbst lösen :)
 
  • Gefällt mir
Reaktionen: redjack1000 und tollertyp
Hilfe zur selbsthilfe wäre doch das coolste oder? damit du beim nächsten Problem selber weißt wie du zur Lösung kommst...
 
Falc410 schrieb:
Also du willst eine Textdatei zeilenweise einlesen und jede Zeile prüfen ob diese mehr als 25 Zeichen hat und falls ja in eine neue Datei schreiben?

nein, nicht jede zeile
sondern wörter welche max. 25 zeichen haben und am anfang und am ende ein "'" stehen haben
Ergänzung ()

00Julius schrieb:

weil ich dachte das es sich bei diesem code um einen php code handelt
sorry
 
Falc410 schrieb:
Also du willst eine Textdatei zeilenweise einlesen und jede Zeile prüfen ob diese mehr als 25 Zeichen hat und falls ja in eine neue Datei schreiben?

1. Problem richtig beschreiben
2. Überlegen wo und mit welchem Interpreter das laufen soll (PHP, Powershell, Python, Bash, etc)
3. selbst versuchen und bei konkreten Problemen fragen

P.S. Um die Länge eines Strings zu prüfen, braucht es keine RegEx
P.P.S. Hausaufgaben selbst lösen :)
nicht nur die hausaufgaben selbst lösen, sondern auch die syntax für die sprache eruieren, mit der man die lösung umsetzen möchte...... nicht einfach drauf los bratzen....

der eingangspost ergibt zwar irgendwo sinn, aber nur, wenn man sprachen und konstrukte vermischt... :-)

@TE: lass dich von den komentaren nicht abschrecken... wenn du es nicht besser weisst, ist es völlig okay.... sag uns einfach nur, was du bezwecken möchtest... :-)
 
  • Gefällt mir
Reaktionen: back4ever1 und redjack1000
Unter Linux mit sed:

sed -nE "s/([^[:alnum:]']|^)([[:alnum:]]*')([^[:alnum:]]|$)/\2/p" your_file.txt > output.txt

Mit PHP:

<?php

$fileContent = file_get_contents('your_file.txt'); // Read the file content

// Use regular expressions to extract words ending with "'" and shorter than 25 characters
$pattern = "/\b\w*'\b(?=.{0,24}\b)/i"; // The regular expression pattern
preg_match_all($pattern, $fileContent, $matches); // Perform the matching

$extractedWords = $matches[0]; // Extracted words will be stored in this array

// Display the extracted words
foreach ($extractedWords as $word) {
echo $word . "\n";
}

?>
 
Zurück
Oben