• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

$_REQUEST mit strlen behandeln?

aJunkie

Mitglied
Hallo,

wie kann ich diesen Schnipsel:
PHP:
<?php echo $_REQUEST["file"]; ?>
so behandeln, dass er der Variable die letzten 4 Zeichen abschneidet?

Ich habe es bisher so gemacht, weiß aber gerade nicht, wie ich es mit dem Teil da oben mache:
PHP:
<?php echo substr($row['titel'],0,strlen($row['titel'])-4); ?>

Edit:
Ich habe es bisher so gemacht:
PHP:
<?php echo substr($_REQUEST['file'],0,strlen($row['file'])-4); ?>
Bei mir funktioniert es, aber ist es so richtig bzw. die beste Lösung?
 
Benutze anstelle von $_REQUEST lieber $_POST bzw. $_GET, je nachdem, wie du die Daten erhälst.

Zum Code: Was hat denn das
Code:
$row['file']
noch im Code zu suchen?
 
Vielleicht will er aber $_REQUEST? In der Doku zu substr() steht, dass man auch negative Zahlen angeben kann:
PHP:
substr($_REQUEST['file'], 0, -4);
 
Falls es hier übrigens darum geht, die Dateiendung abzuschneiden, kann auch pathinfo helfen:

PHP:
$pi = pathinfo('einszweidrei.mp3');
echo $pi['filename'];

Edit: Geht sogar kürzer:

PHP:
echo pathinfo('einszweidrei.mp3', PATHINFO_FILENAME);
 
Also,
ich habe eine Tabelle, die jeweils pro Zeile eine Variable trägt.
Die eine Variable möchte ich dann auf die nächste Seite bringen, falls drauf geklickt bzw. erwünscht.

Das mache ich so:
PHP:
<a href="../ausgabe.php?file=<?php echo $file; ?>">Test. Hier wird es ausgegeben.</a>
Und wird diese eine Variable gleich, wie ich es möchte, in das Eingabefeld übernommen:
PHP:
<input type="text" name="songtitel" value="<?php echo substr($_REQUEST['file'],0,strlen($row['file'])-4); ?>" size="50">
Jetzt kamen einige Vorschläge.
Ist es so richtig? Ja, nein, warum?

Edit: Die Variable trägt das komplette deutsche Alpabeth, Umlaute und Sonderzeichen. Zahlen können da drin auch vorkommen.

Edit2: Ich transportiere die Variable also per URL.
 
Zuletzt bearbeitet:
Ich würde es bei der Ausgabe im Textfeld so machen:

PHP:
<input type="text" name="songtitel"
    value="<?php echo htmlspecialchars(pathinfo($_GET['file'], PATHINFO_FILENAME)); ?>"
    size="50">

Die htmlspecialchars schützen vor XSS-Attacken. Das pathinfo funktioniert nur mit Dateinamen, die rein aus ASCII-Zeichen bestehen.

Mit substr geht es natürlich auch.
 
Zurück
Oben