PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : $text, nach gewissen anz. v. zeichen text einfügen


flobee
12.09.2002, 18:32:15
hallo!
ich möchten einen variablen text nach einer gewissen anzahl von zeichen ein trennzeichen oder anderen text einfügen.
z.B. nach 1024 zeichen ein "n" oder "rn" "&quote;br&quote;"
jetzt fehlt mir da ein wenig die kenntnis von befehlen die ich dafür verwenden kann/muss/sollte. kann mir jemand helfen?

vorgang könnte sein: länge der zeichen => teilen durch GanzeZahl int(anz. nach dem etwas eingefügt werden soll) => und das in ein for schleife bis alles abgearbeitet ist? oder geht das einfacher?
ich suche u.a nach einem befehl z.b. für lengh <- javascript im php gibts da was ähnliches?
gruß flobee

MiH
13.09.2002, 08:21:33
strlen() liefert dir die anzahl der zeichen.

Ben20
13.09.2002, 18:09:04
Vorschlag:

$neuerstring = substr($alterstring, 0, $trennpos) . "n" . substr($alterstring, $trennpos);


Ist jetzt aus dem Hirn getippt, kann sein, dass da noch Fehler drin sind!

flobee
13.09.2002, 20:46:51
danke für die tipps!
dies ist mein ergebnis! vielleicht ein wenig lang aber es geht:

function txtbreak($text,$brnum,$splitter) {
// php > 4.0.2 , ONLY IF OS = Windows
if (substr(php_uname(), 0, 7) == "Windows") {
/* settings */
$text = rtrim($text); // optional
$num_chars = strlen($text);

$trenn_sum = round($num_chars/$brnum);
if($num_chars >= ($trenn_sum*$brnum)) {
$trenn_sum = $trenn_sum -1;
}
/* do the txt splitt */
for($i=0;$i<$trenn_sum;$i++) {
$start = $brnum * $i ;
$newtext .= substr($text,$start,$brnum) . $splitter;

}
return $newtext;
}
}
// txtbreak($text,nach_wievielen_zeichen_trennen, einfüge_text_od_value);
echo txtbreak($text,10,"n");

ich brauchte dies um zu testen ob man unter windowsXP/NT5 die php mail() funtion für html mails so verwenden kann da ich irgendwo gehört habe das windows alle 1024 zeichen eine neue zeile benötigt um alles sauber ab zu arbeiten! leider erfolgslos! txt mails JA, html mails NEIN ;:-( windoof

egal! wer einen text splitter braucht: take this one