Problem mit franz. Sonderzeichen bei str_split

Bash, Shell, PHP, Python, Perl, CGI
fulltilt
Posts: 363
Joined: 2006-08-27 02:06

Problem mit franz. Sonderzeichen bei str_split

Post by fulltilt » 2009-03-21 18:22

Bin hier an einem Punkt wo ich nicht weiterkomme (französische Zeichen) 8O
Ich erstelle gerade ein Script für FPDF wobei verschiedene Bewertungen, Name usw. aus einer DB ausgelesen werden, klappt auch soweit.
Auf dem Server sind die locales UTF-8 (FR) ... ebenfalls installiert, das ganze Script arbeitet unter UTF-8 und die DB auch.

So - jetzt muss ich für eine Tabelle die Wörter für die Noten oben vertikal stellen also:
Très bien soll dann so aussehen:
T
r
è
s

b
i
e
n

hierbei ist das Problem, das wenn ein Umbruch erfolgt oder ich die Tabelle auf eine Breite von 4 setze um einen Umbruch zu erzwingen, andert sich z.B. der Buchstabe è zum ?

habe bereits das hier versucht, bringt aber nichts:

Code: Select all

$note1 = $note["note1"];
$not1=utf8_decode($note1);
$wort1 = implode("n",str_split($not1));
$this->MultiCell(8, 4, $wort1 , '0', 'C', 0); 

bzw.

Code: Select all

$this->MultiCell(8,4,utf8_decode($wort1),'0','C','0');  


Wenn ich das Wort "Très bien" statisch ins Script schreibe und so umbreche:
$wort1 = "Tnrnèns nn bninenn";
funktioniert es ...
gibt es eine Möglichkeit das genau so umzubrechen wenn der Wert aus der Datenbank kommt?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11604
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Problem mit franz. Sonderzeichen bei str_split

Post by Joe User » 2009-03-21 23:05

Sieh Dir mal die UTF8-Unterstützung des phpBB3 an, IMHO sehr gut gelöst.
Auszug aus phpBB3-3.0.4/includes/utf/utf_tools.php, nicht standalone lauffähig:

Code: Select all

/**
* UTF-8 aware alternative to str_split
* Convert a string to an array
*
* @author Harry Fuecks
* @param string $str UTF-8 encoded
* @param int $split_len number to characters to split string by
* @return array characters in string reverses
*/
function utf8_str_split($str, $split_len = 1)
{
   if (!is_int($split_len) || $split_len < 1)
   {
      return false;
   }

   $len = utf8_strlen($str);
   if ($len <= $split_len)
   {
      return array($str);
   }
   
   preg_match_all('/.{' . $split_len . '}|[^x00]{1,' . $split_len . '}$/us', $str, $ar);
   return $ar[0];
}
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

fulltilt
Posts: 363
Joined: 2006-08-27 02:06

Re: Problem mit franz. Sonderzeichen bei str_split

Post by fulltilt » 2009-03-22 17:50

Danke - das könnte klappen :-)
Muss ich noch ein implode voranstellen, oder kann ich die Funktion direkt aufrufen:

Code: Select all

$not1=utf8_str_split($note1); 


Joe User wrote:Sieh Dir mal die UTF8-Unterstützung des phpBB3 an, IMHO sehr gut gelöst.
Auszug aus phpBB3-3.0.4/includes/utf/utf_tools.php, nicht standalone lauffähig:

Code: Select all

/**
* UTF-8 aware alternative to str_split
* Convert a string to an array
*
* @author Harry Fuecks
* @param string $str UTF-8 encoded
* @param int $split_len number to characters to split string by
* @return array characters in string reverses
*/
function utf8_str_split($str, $split_len = 1)
{
   if (!is_int($split_len) || $split_len < 1)
   {
      return false;
   }

   $len = utf8_strlen($str);
   if ($len <= $split_len)
   {
      return array($str);
   }
   
   preg_match_all('/.{' . $split_len . '}|[^x00]{1,' . $split_len . '}$/us', $str, $ar);
   return $ar[0];
}

User avatar
Joe User
Project Manager
Project Manager
Posts: 11604
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Problem mit franz. Sonderzeichen bei str_split

Post by Joe User » 2009-03-22 17:55

Wie bereits geschrieben, ist diese Funktion nicht standalone lauffähig. Du benötigst schon das komplette UTF-Framework aus phpBB3 (includes/utf). Wie Du die Funktionen genau aufrufen musst, findest Du per grep auf phpBB3 schnell selbst raus ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

fulltilt
Posts: 363
Joined: 2006-08-27 02:06

Re: Problem mit franz. Sonderzeichen bei str_split

Post by fulltilt » 2009-03-22 18:04

alles klar - Danke

Joe User wrote:Wie bereits geschrieben, ist diese Funktion nicht standalone lauffähig. Du benötigst schon das komplette UTF-Framework aus phpBB3 (includes/utf). Wie Du die Funktionen genau aufrufen musst, findest Du per grep auf phpBB3 schnell selbst raus ;)