@[CCCB]m0p
Danke für deine Antwort. Explode hat mir weitergeholfen, allerdings habe ich das jetzt etwas anders gelöst. Ich vergleiche die Message-IDs miteinander, da diese unique sind. Allerdings funktioniert dann in_array nicht mehr, also habe ich das zur Fuß gemacht.
Code:
function syncMyFiles($filename,$filename2)
{
$handle = fopen($filename, "a+");
$handle2 = fopen($filename2, "a+");
$contents = fread($handle, filesize($filename));
$contents2 = fread($handle2, filesize($filename2));
$pieces = explode("From -", $contents);
$pieces2 = explode("From -", $contents2);
for ($i = 1; $i < sizeof($pieces); $i++)
{
$isNew = 1;
preg_match("/(Message-.*: <.*>)/", $pieces[$i], $matches);
for ($k = 1; $k < sizeof($pieces2); $k++)
{
preg_match("/(Message-.*: <.*>)/", $pieces2[$k], $matches2);
if ($matches[0] == $matches2[0] && $matches[0] != "" && $matches2[0] != "")
{
$isNew = 0;
break;
}
}
if ($isNew == 1)
{
fwrite($handle2, "\n\nFrom -".$pieces[$i]."\n\n");
echo "writing new mail to file: $filename\n";
}
}
for ($i = 1; $i < sizeof($pieces2); $i++)
{
$isNew = 1;
preg_match("/(Message-.*: <.*>)/", $pieces2[$i], $matches);
for ($k = 1; $k < sizeof($pieces); $k++)
{
preg_match("/(Message-.*: <.*>)/", $pieces[$k], $matches2);
if ($matches[0] == $matches2[0] && $matches[0] != "" && $matches2[0] != "")
{
$isNew = 0;
break;
}
}
if ($isNew == 1)
{
fwrite($handle, "\n\nFrom -".$pieces2[$i]."\n\n");
echo "writing new mail to file: $filename2\n";
}
}
fclose($handle);
fclose($handle2);
}
syncMyFiles("done","done2");
Lesezeichen