[code]
<?php
/*################################
#                               Gemaakt door Kay S                            #
################################*/

$mapnaam = 'files'; //map waar de bestanden in komen
$base = 'http://crap.dragy.nl/cttopti/'; //totale boom waar het bestand staat

/*################################
#                    Vanaf hier niks meer aanpassen                    #
################################*/

$error = '';
$bericht = '';
$gelukt = array();
$mislukt = array();
$valid = array();
$xml_contents = array();

function readxml($str)
{
    preg_match_all('|<contact type="(.*)">(.*)</contact>|U', $str, $xml);
    return $xml;
}

if(!is_dir($mapnaam))
{
    $rootdir = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['SCRIPT_FILENAME']);
    if(mkdir($rootdir.$mapnaam, 0777, true))
    {
        $bericht .= "Maken van map '".$mapnaam."' gelukt.<br />";
    }else
    {
        $error .= "Maken van map '".$mapnaam."' is mislukt. Waarschijnlijk mag ik de map niet maken.. Je kan de map zelf maken en chmodden naar 777 (alle rechten)<br />";
    }
}

if(!is_writable($mapnaam))
{
    $error .= "Kan niet schrijven naar map '".$mapnaam."'. Je moet de map nog chmodden naar 777 (alle rechten).<br />";
}

if(isset($_POST['submit']) AND empty($error))
{
    $max_adr = $_POST['maxadr'];
    if(ctype_digit($max_adr))
    {
        $ctt = $_POST['ctt'];
        for($n=0; $n < count($ctt); $n++)
        {
            if(!empty($ctt[$n]))
            {
                $xml = readxml(stripslashes($ctt[$n]));
                $types = $xml[1];
                $addr = $xml[2];
                if(count($types) > 0)
                {
                    for($a=0; $a < count($types); $a++)
                    {
                        if($types[$a] == 1)
                        {
                            $valid[] = $addr[$a]; //alle adressen die goed zijn
                        }
                    }
                }else
                {
                    $error .= "Bestand ".($n+1)." is geen geldig .ctt bestand of is niet compatible.<br />";
                }
            }else
            {
                $error .= "Veld ".($n+1)." was leeg.<br />";
            }
        }
        $valid = array_unique($valid); //duplicaten er uit vissen
        $adr_delen = array_chunk($valid, $max_adr); //het opsplitsen in delen
        $n_delen = count($adr_delen); //aantal bestanden dat gemaakt moet worden
        
        //nu weer de xml er bij voegen
        for($b=0; $b<$n_delen; $b++)
        {
            $xml_contents[$b] = "<?xml version=\"1.0\"?>\n<messenger>\n  <service name=\".NET Messenger Service\">\n    <contactlist>\n";
            foreach($adr_delen[$b] as $adres)
            {
                $xml_contents[$b] .= "      <contact type=\"1\">".$adres."</contact>\n";
            }
            $xml_contents[$b] .= "    </contactlist>\n  </service>\n</messenger>";
        }
        
        //schrijven naar bestanden
        for($c=0; $c<count($xml_contents); $c++)
        {
            $cct_name = 'Contactpersonen_bestand_'.sprintf('%04d', $c+1).'_'.date('dmYHis').'.ctt';
            if(!$handle = fopen($mapnaam.'/'.$cct_name, 'w'))
            {
                $error .= "Kan bestand niet openen. (".$cct_name.")<br />";
                $mislukt[] = $cct_name;
            }else
            {
                if(fwrite($handle, $xml_contents[$c]) === FALSE)
                {
                    $error .= "Kan niet schrijven naar ".$cct_name.".<br />";
                    $mislukt[] = $cct_name;
                }else
                {
                    $gelukt[] = $cct_name;
                    fclose($handle);
                }
            }
        }
    }else
    {
        $error .= "Maximum aantal adressen is geen getal!<br />";
    }
}
?>
<html>
    <head>
        <title>Msn contactlijst splitter, door Kay S</title>
        <script type="text/javascript">
            var veld = 2;
            var contents = [];
            
            function addveld()
            {
                for(i=0; i<(veld-1); i++)
                {
                    contents[i+1] = document.getElementById('b'+(i+1)).value;
                }
                document.getElementById("uformulier").innerHTML = document.getElementById("uformulier").innerHTML+'Bestand '+veld+':<br /><textarea id="b'+veld+'" name="ctt[]" rows="2" cols="20"></textarea><br />';
                veld++;
                for(i=0; i<(contents.length-1); i++)
                {
                    document.getElementById('b'+(i+1)).value = contents[i+1];
                }
            }
        </script>
        <style>
            body {
                font-family: Arial;
                font-size: 9pt;
                color: #000;
                text-align: center;
            }
            h1, h2 {
                margin: 0;
            }
            #container {
                background: #f1f1f1;
                border: 10px solid #333;
                margin: 20px auto;
                width: 700px;
            }
            #header {
                background: #2061AF;
                color: #fff;
                height: 50px;
                padding: 20px;
                border-bottom: 5px solid #333;
            }
            .bericht, .error {
                width: 80%;
                background: #fff;
                margin: 10px auto;
                padding: 10px;
            }
            .bericht {
                border: 3px solid #00ff00;
            }
            .error {
                border: 3px solid #ff0000;
            }
        </style>
    </head>
    <body>
        <div id="container">
            <div id="header">
                <h1>Contact lijst splitter</h1>
                <h2>Door Kay S</h2>
            </div>
            <?php
                if(!empty($error)) echo '<p class="error">'.$error.'</p>';
                if(!empty($bericht)) echo '<p class="bericht">'.$bericht.'</p>';
                
                if(count($gelukt) > 0)
                {
                    echo '<p class="bericht">';
                    echo 'Succesvol '.count($gelukt).' bestanden gemaakt!. Elk bestand bevat '.$max_adr.' adressen en het laatste bestand bevat er '.count($adr_delen[$n_delen-1]).'.';
                    if(count($mislukt) > 0) echo '<br />Helaas zijn er ook '.count($mislukt).' mislukt..';
                    echo '</p>';
                    
                    foreach($gelukt as $filename)
                    {
                        echo '<input type="text" readonly="readonly" value="'.$base.$mapnaam.'/'.$filename.'" size="50"/> <a href="'.$mapnaam.'/'.$filename.'" title="Download">download</a><br />';
                    }
                }
            ?>
            <form action="contactstrip.php" method="post">
                <p>
                    Plak hier de inhoud van de .ctt bestanden:
                </p>
                <p>
                    Adressen per bestand: <input type="text" name="maxadr" value="10" size="3"/>
                </p>
                <p id="uformulier">
                    Bestand 1:<br />
                    <textarea id="b1" name="ctt[]" rows="2" cols="20"></textarea><br />
                </p>
                <p>
                <input type="button" value="Voeg veld toe" onclick="addveld();"/>
                <input type="submit" value="Voeg samen" name="submit" />
                </p>
            </form>
        </div>
    </body>
</html>
[/code]