Moin!
echo preg_replace("[[:^print:]]"," ",$x)."\n";
zieht er mir zu viel Zeichen raus.
Ich weiß, dass er zB. email-Adressen mit @ und Punkt druckt.
Hä? Wenn Du die Syntax frei verballhornst, dann wundere Dich nicht über falsche Ergebnisse!
<?php
$haystack = "Ödipuß<foo@example.com>\r\n";
$search = '/[^[:print:]ÖöÄäÜüß]\r\n/';
echo preg_replace($search, '_', $haystack);
echo "Ende\n";
Ergebnis:
fastix@trainer:/tmp$ php test_replace.php
Ödipuß<foo@example.com>
Ende
fastix@trainer:/tmp$
Versuch 2:
<?php
$haystack = "Ödipuß<foo@example.com>\r\n";
$search = '/[^[:print:]ÖöÜüÄäß\n\r]/';
echo preg_replace($search, '_', $haystack);
echo "Ende\n";
Ergebnis:
fastix@trainer:/tmp$ php test_replace.php
Ödipuß<foo@example.com>
Ende
fastix@trainer:/tmp$
Versuch 3:
<?php
$haystack = "Ödipuß<foo@example.com>\r\n";
$search = '/[^[:print:]ÖöÜüÄäß\n\r]/';
echo preg_replace($search, '_', $haystack);
echo "Ende\n";
Ergebnis:
php test_replace.php
__dipu__<foo@example.com>
Ende
fastix@trainer:/tmp$
Es geht also sehr wohl.
BTW: Kann es sein, dass dem Drucker "Seiten" geliefert werden, bei denen der druckbare Bereich überschritten wird? Grund für die Annahme: Im Handbuch laß ich was von wegen mitgelieferte Schriftart benutzen.
Jörg Reinholz