Zum Inhalt springen

[PHP] Die Wörter einer Eingabe auf ihre Länge prüfen


Empfohlene Beiträge

Hi,

ich hab ein kleines Problem.

Und zwar habe ich ein Textfeld in dem ein User etwas beliebiges eingeben kann.

Dummerweise, wenn er z.b. "WWWWW.....WWWW" eingibt verzieht es mir mein gesamtes Layout da der String zu lange ist um in die aktuelle Formatierung zu passen.

Jetzt hab ich ein PHP-Skript welches den komplett eingegebenen String an den " " (Space) trennt und somit die einzelnen Wörter in einem Array spiechert.

Daraufhin wird jedes einzelne Arrayelement auf seine Länge geprüft und sollte es länger als 20 sein so wird per substring alles von 0 bis 20 genommen und gegen das zu lange wort getauscht.

Aber irgendwie will das ganzen icht funktionieren....

Er erkennt zwar die Anzahl der Wörter aber meint das die Wörter selber eine Länge von 0 haben o_O

Nun, hier ist mal mein Code, er ist, so wie er ist, ausführbar

<html>
<body>
Testdatei zum Überprüfen ob Stringlengthfixer funktioniert<br><br><br>
<?php
$shouttext="HalloHalloHalloHalloHalloHalloHallo Welt";
echo "Debug -> Davor: $shouttext<br>";

$shouttext_words = split(" ", $shouttext);
echo "Debug -> Es wurden ".sizeof($shouttext_words)." Elemente gefunden<br>";

for($i = 0; $i < sizeof($shouttext_words); $i++){
if(strlen($shouttext_words[i]) > 20){
$shouttext_words[i] = substr($shouttext_words[i], 0, 20);
}
}

$shouttext = "";
$shouttext = implode(" ",$shouttext_words);
echo "-> Danach: $shouttext";
?>
</body>
</html>[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

also entweder du machst in den Zeilen 13 und 14 bei deiner Lösung ein $ vor das i ;) (kommt davon wenn man zuerst vernünftige Programmiersprachen lernt)

oder du machst es so :)


<html>
<body>
Testdatei zum Überprüfen ob Stringlengthfixer funktioniert<br><br><br>
<?php
function seperate_string(&$ar, &$pos, $strlen=20)
{
if(strlen($ar[$pos]) > $strlen-strstart)
{
for($i=count($ar); $i>$pos; $i--)
$ar[$i] = $ar[$i-1];
$ar[$pos]=substr($ar[$pos], 0, $strlen);
$pos++;
$ar[$pos]=substr($ar[$pos], $strlen, strlen($ar[$pos])-$strlen);
return seperate_string($ar, $pos, $strlen);
}
else
{
return $ar;
}
}

$shouttext="XXXXXXXXXXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYYYYYYYYYYY ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
echo "Debug -> Davor: $shouttext<br/>";

$shouttext_words = split(" ", $shouttext);
echo "Debug -> Es wurden ".sizeof($shouttext_words)." Elemente gefunden<br>";

for($i = 0; $i < sizeof($shouttext_words); $i++){
seperate_string($shouttext_words, $i);
}

$shouttext = implode(" ",$shouttext_words);
echo "-> Danach: $shouttext";
?>
</body>
</html>
[/PHP]

bei der funktion gibts sicher noch optimierungsmöglichkeiten aber fürn anfang sollte die reichen :hells:

Link zu diesem Kommentar
Auf anderen Seiten teilen

ARG.... *an Kopf klatsch* jaaaaa is klar, ohne $ vorm i geht nix, man sollte kein PH direkt nach C++ machen ;)

und vorallem, wenn ich mir RegEx was ersetze sollte ich das ersetze auch ner Variablen zuweisen :rolleyes:

Hier is der Code der funzt:


$shouttext="Dies ist Holger's Teststring WelcherEinWortEnthältWasAusMehrerenWörternBesteht";
$shouttext = ereg_replace("'", "", $shouttext); //Zuweisung an $shouttext vergessen
echo "$shouttext<br>";
$shouttext = split(" ", $shouttext);
echo sizeof($shouttext)."<br>";
for($i = 0; $i < sizeof($shouttext); $i++){
if(strlen($shouttext[$i]) > 20){//Hier
$shouttext[$i] = substr($shouttext[$i],0,20);//und hier die $ vergessen
}
}
$shouttext = implode(" ",$shouttext);
echo "$shouttext<br>";
[/php]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...