problem with utf8_encode

[email protected] (Valkum) Sat, 21 Mar 2009 23:35:29 +0100
Newsgroups php.i18n
Message-ID <[email protected]>
Hello,

i have a big problem.

When i try to encode a big string to utf8 i got a core dump

her is my code.


    <?php
    function is_utf8($string) {
       // From http://w3.org/International/questions/qa-forms-utf-8.html
       return preg_match('%^(?:
             [\x09\x0A\x0D\x20-\x7E]            # ASCII
           | [\xC2-\xDF][\x80-\xBF]            # non-overlong 2-byte
           |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
           | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
           |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
           |  \xF0[\x90-\xBF][\x80-\xBF]{2}    # planes 1-3
           | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
           |  \xF4[\x80-\x8F][\x80-\xBF]{2}    # plane 16
       )*$%xs', $string);
    }

    function output($string)
    {
        if(!is_utf8($string))
          $string = utf8_encode($string);
        return addslashes($string);
    }

    $string = <<<EOH
    <div align="justify">
    <p>- Im Aufbau -</p>
    <h3 id="aventurien">Aventurien</h3>
    <div style="border: 1px none ; margin: 5px 5px 5px 10px; float:
    right; width: 100px;"><strong>Navigation</strong> <br />
    <br />
    <a href="#aventurien">Aventurien</a><br />
    <a href="#ferdok">Die Stadt Ferdok</a><br />
    <a href="#weitere">Weitere Ziele</a></div>
    <p>{mosimage} Aventurien ist ein Kontinent der Welt Dere und
    Ausgangspunkt f&uuml;r die meisten Abenteuer in der Welt von <em>Das
    Schwarze Auge</em>. Von Nord nach S&uuml;d erstreckt sich der
    Kontinent ca. &uuml;ber 3000 Meilen, von Ost nach West sind es
    immerhin noch 2000 Meilen. Von den Tundren Thorwals bis zur
    W&uuml;ste Khom kann man so ziemlich alle Klimazonen in Aventurien
    finden.</p>
    <p>Im Herzen Aventuriens liegt das Kaiserreich, auch das Mittelreich
    genannt, mit seiner Hauptstadt Gareth (rot umrandeter Bereich).  Die
    Kultur erinnert entfernt an das mittelalterliche Europa. Die
    Handlung Drakensangs wird zu gro&szlig;en Teilen im Mittelreich
    spielen, genauer gesagt, in der Umgebung der Stadt Ferdok (s.u.).
    Doch auch andere, exotischere Orte sollen Ziel der Reise werden.</p>
    <p>Zahlreiche V&ouml;lker und Rassen bewohnen den Kontinent, allen
    voran nat&uuml;rlich die Menschenv&ouml;lker, die die Mehrheit der
    Bewohner stellen. Unter den Menschen gibt es zahlreiche
    unterschiedliche Kulturen, z. B. die wikinger&auml;hnlichen
    Thorwaler, das Nomadenvolk der Nivesen oder eben die
    Mittell&auml;nder. Daneben gibt es nat&uuml;rlich noch
    fantastischere V&ouml;lker wie die Elfen (mit mehrern Untergruppen),
    Zwerge, Orks und mehr, eben alles, was eine Fantasywelt zu bieten
    hat.</p>
    <p>&nbsp;</p>
    <h3 id="ferdok">Ferdok</h3>
    <p><a target="_blank" href="images/stories/stadtplan_g.jpg">
    {mosimage}</a></p>
    <p>Ferdok ist eine Grafenstadt im Mittelreich, etwas westlich der
    Hauptstadt Gareth, und hat etwa 3000 Einwohner. Sie geh&ouml;rt zu
    den &auml;ltesten menschlichen Siedlungen des Kosch. Im Laufe der
    Geschichte mu&szlig;te die Stadt jedoch wegen einer &Auml;nderung
    des Flu&szlig;laufes des Gro&szlig;en Flu&szlig;es im Jahre 270 BF
    verlegt werden, da die Stadt in der Bedeutungslosigkeit zu versinken
    drohte. Heute liegt Ferdok wieder direkt an der Einm&uuml;ndung des
    Rakula in den Gro&szlig;en Flu&szlig;. Obwohl  die Stadt die
    fr&uuml;here Bedeutung l&auml;ngst verloren hat, hat sich Ferdok als
    ein wichtiger Handelshafen etabliert (weltber&uuml;hmt: Ferdoker
    Bier). Hier werden die Waren von Gareth umgeschlagen, die &uuml;ber
    die gro&szlig;e Handelsstra&szlig;e von und nach Ferdok verfrachtet
    werden. Ferdok ist damit eines der Tore zum Westen und
    erm&ouml;glicht schnelle Reisen in andere Teile der Aventuriens.</p>
    <p>Verwaltungstechnisch geh&ouml;rt Ferdok zum F&uuml;rstentum
    Kosch, dessen Hauptstadt sie langezeit war. Mittlerweile hat sie
    diesen Status jedoch an Angbar verloren. Trotz seiner wichtigen
    Rolle als Handelsort sind die Bewohner Ferdoks ein eher biederes
    V&ouml;lkchen und h&auml;ngen der Erinnerung an die ruhmreichere
    Vergangenheit hinterher. Nachts muss man auf den Stra&szlig;en
    neuerdings aufpassen. Zur Handlungszeit verunsichert n&auml;mlich
    eine grauenhafte Mordserie die Bewohner Ferdoks und l&auml;sst die
    Bev&ouml;lkerung nachts nicht richtig schlafen. Einige Bereiche
    sollte man dann grunds&auml;tzlich nicht mehr besuchen, wenn einem
    die eigene Gesundheit am Herzen liegt.</p>
    <p>Die Stadt wird eine zentrale Anlaufstelle in Drakensang sein,
    weswegen sie auch vollst&auml;ndig, nach den Vorgaben des
    DSA-Regelwerks in das Spiel eingebaut wird. Der Stadtplan (zum
    Vergr&ouml;&szlig;ern anklicken) wurde von Radon Labs dem Regelwerk
    direkt entnommen und wird Euch auch f&uuml;r Drakensang gute Dienste
    leisten.</p>
    <br />
    <h3 id="weitere">Weitere Reiseziele des Spiels</h3>
    <a target="_blank"
    href="images/stories/artikel/map.jpg">{mosimage}</a> Insgesamt soll
    es 12 Hauptregionen geben, die jeweils ca. 1 Quadratkilometer
    gro&szlig; sind. Alle diese Regionen unterteilen sich nochmal in
    &uuml;ber 50 kleinere Gebiete. Bekannt sind neben Ferdok bislang:
    <ul>
        <li>Avestreu (kleines Dorf s&uuml;d&ouml;stl. von Ferdok)</li>
        <li>Dunkelwald (s&uuml;dl. von Ferdok)</li>
        <li>Ruine Blutberge (s&uuml;dl. von Ferdok, am Rand des
    Dunkelwaldes)</li>
        <li>Moorbr&uuml;ck (s&uuml;dl. des Dunkelwaldes)</li>
        <li>Burg Grimmzahn (westl. von Moorbr&uuml;ck)</li>
        <li>Murolosch (eine Zwergenstadt)</li>
        <li>der Berg Drachensang / Drakensang (im Amboss-Gebirge
    gelegen)</li>
    </ul>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>Ausf&uuml;hrlichere Infos:</p>
    <p><a title="Wiki Aventurica" target="_blank"
    href="http://dsa4.de/wiki">Wiki Aventurica </a>(externer Link)<br />
    <a href="http://www.eychgras.de/koschwiki/index.php"
    target="_blank">KoschWiki</a> (externer Link)</p>
    <p>&nbsp;</p>
    </div>
    EOH;
    print_r(output($string));
    ?>

Please help me. When i delete some code from <ul> to </div> at the end, 
i get no core dump. only with the full text.

What is the problem??

Greetz Valkum