Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Array Problem

Hallo ich habe vollgendes script:

[PHP]
$ordner = "./";

$handle = opendir($ordner);

while ($file2 = readdir ($handle))

{

if (($file2 != "." && $file2 != "..") AND (ereg('.dat$', strtolower($file2))))
{
$file_size .= ";".filesize($file2);
}
}
closedir($handle);

$uebergabe = $file_size;
$array = array($uebergabe);


ob_start();
include("cookie.php");
ob_end_clean();

echo strtoupper($wert);
//echo $file_size;
[/PHP]

jetzt würde ich gene haben er listet mir ja bei wenn ich noch $file_size ausgeben würde mit echo listet er mir alle größen der .dat datei auf hintereinander mit eine ";" dazwischen.
jetzt hätte ich gerne das er mir das in array packt und zwar jeden wert halt zu einer zahl also mit 1,2,3,4 durchnummerriert das jede größe eines files eine nummer hat bei eins beginnent ich bekomme es aber nur hin das er mir den ganzen zahlenstring in einen array packt und ihm die nummer "0" gibt und nicht das alles durchnummerriert wie bekomme ich das hin kann mir da jemand weiterhelfen???

(PS: das cookie include ist erstmal überflüssig)

MFG
Druckgott

Hier gehts zum Orginal Eintrag "Array Problem" im Forum

Antworten

Jetzt habe ich Deinen Text zweimal gelesen, aber immer noch nicht verstanden, was Du da schreibst.

Was spricht dagegen, dass beim Index 0 begonnen wird?

*** Nobody ***


2.

jo das ist auch im prinzip egal nur das problem ist er tut mir den ganzen string allso alle werte auf den array 0 und nicht den ersten wert bei 0 den zweiten bei 1 usw. hoffe du hast es jetzt verstanden.


3.

Code:                   In Zwischenablage kopieren (nur IE)
1">

*** Nobody ***


4.

jo haut hin danke


5.

könntest du mir vielleicht noch etwas weiterhelfen jetzt würde ich gerne haben das das in ein cookie gespeicher wird alle der array und wenn ich das jetzt anwende dann soll er mir ausgeben welche file neu ist dazu habe ich follgendes cookie script:

[PHP]
$neu = "<div align='center'><font color='#FF0000'>Ein neuer Kommentar</font></div>";
$nichtneu = "<div align='center'><font color='#FFCC00'>Kein neuer Kommentar</font></div>";
$schreib = "<div align='center'><font color='#FF0000'>Schreib etwas</font></div>";

if (isset($_COOKIE["coolpixxeinzel"]))
{
$fileSize2 = $_COOKIE["coolpixxeinzel"];
if ($fileSize2 != $uebergabe)
{
// Cookie mit einer Lebensdauer von 30 Tagen
setCookie("coolpixxeinzel", $uebergabe, time()+2073600);
$wert = $neu;
}
else
$wert = $nichtneu;
}
else
{
// Cookie mit einer Lebensdauer von 30 Tagen
setCookie("coolpixxeinzel", $uebergabe, time()+2073600);
$wert = $schreib;
}
[/PHP]

er soll mir jetzt für jeden file ausgeben, ob ein file größer oder kleiner geworden ist!!!


6.

mir würde schon etwas hilfe reichen wie ich das grundsätzlich mache!!!


7.

Ich frage mich, was Du damit erreichen willst. Mit der Dateigrösse kann man doch nichts anfangen. Wenn ich mich richtig daran erinnere, geht es doch darum, zu erkennen, ob neue Dateien oder geänderte Dateien vorhanden sind. Da kann man doch besser mit dem Datum arbeiten. Wenn ich in einer Textdatei zwei Zeichen oder in einer Grafik zwei Pixel geändert haben, bleibt die Größe identisch, das würdest Du so doch garnicht merken.

*** Nobody ***


8.

ja das ist auch nicht schlecht!!!

das erste script ging darum erstmal herauszufinden ob es überhaupt neue kommentare gibt!!!

beim 2ten script geht es jetzt darum wo der neue kommentar ist also bei welchem bild

eigentlich functioniert das aber mit der größe schon das haut bei dem anderen script auch hin wo er schaut ob es überhaupt neue kommentare gibt das geht auch nur nach der größe!!!

und auch wenn ich nur 2 zeichen dazu setzte haut das hin!! wobei die leute eh nicht nur 2 zeichen schreiben mitndestens ein name und ein wort kommt rein!!! also von dem her das mit der größe haut schon hin


9.

Zitat:
auch wenn ich nur 2 zeichen dazu setzte haut das hin
Es geht nicht um dazu schreiben, sondern um ersetzen, dann haut das nämlich nicht hin!

*** Nobody ***


10.

warum zeichen werden nicht ersetzt wenn werden neue kommentare hinzugefügt!!! ersettz werden zeichen nicht


11.

Auch keine gelöscht? Auch da kann ein Problem entstehen. Ich lösche ein genau 2K große Datei und lege eine genau 2K große Datei an. Dein Script wird das nicht bemerken.

*** Nobody ***


12.

ne wird auch nix gelöscht es wird nur hinzugefügt das ist ein private seite da schreibt keiner mist!!! ist nicht öffentlich *g* da hat man das problem mit löschen usw. nicht g+ü*


13.

Du willst Dir das unbedingt schwer machen, oder? Es geht doch darum, dass Du mitbekommst, dass sich irgendetwas seit dem letzten Aufruf in dem Verzeichnis getan hat, richtig? Dann reicht das Datum der zuletzt erstellten Datei völlig aus, um das festzustellen.

*** Nobody ***


14.

ja aber nicht nur im verzeichnis sondern bei jedem einzelnen dat file also ich will halt wissen bei wlechem dat file sich was geändet hat jedes bild hat einen dazugehörigen dat file wo der text drin gespeicht wird und jetzt wollen die leute natürlich nicht immer die ganze gallerie durchschauen sondern nur den text utnern dem bild wo sich was getan hat wenn das ander einfacher ist und in der situation auch geht kann ich natürlich auch das nehmen!!!


15.

Ich besuche die Seite heute zum ersten Mal um 21:45 Uhr. Der Cookie ist nicht gesetzt, also entfällt jede Kontroll. Num wird das aktuelle Datum im Cookie gespeichert. Dann besuche ich die Seite morgen um 12:00 Uhr. Das Script erkennt den Cookie, liest das Datum aus und sucht alle neueren Dateien. Danach wird das Datum im Cookie aktualisiert.

Wofür brauche ich da alle Dateigrößen?????????????

*** Nobody ***


16.

jo das garnicht so schlecht mit was für befehlen haut das den hin


17.

so haut das ja jetzt hin nur wie lass ich da jetzt jeden einzelnen file anzeigen

[PHP]
$ordner = "./";

$handle = opendir($ordner);

while ($file2 = readdir ($handle))

{

if (($file2 != "." && $file2 != "..") AND (ereg('.dat$', strtolower($file2))))

{
//$file_mtime .= ";".filemtime($file2)
$file_mtime .= ";".date ("F d Y H:i:s", filemtime($file2));;
}
}
closedir($handle);

$uebergabe = $file_mtime;

ob_start();
include("cookie.php");
ob_end_clean();

echo strtoupper($wert);
[/PHP]

das cookie.php sieht so aus:

[PHP]
$neu = "<div align='center'><font color='#FF0000'>Ein neuer Kommentar</font></div>";
$nichtneu = "<div align='center'><font color='#FFCC00'>Kein neuer Kommentar</font></div>";
$schreib = "<div align='center'><font color='#FF0000'>Schreib etwas</font></div>";

if (isset($_COOKIE["coolpixxeinzel"]))
{
$fileSize2 = $_COOKIE["coolpixxeinzel"];
if ($fileSize2 != $uebergabe)
{
// Cookie mit einer Lebensdauer von 30 Tagen
setCookie("coolpixxeinzel", $uebergabe, time()+2073600);
$wert = $neu;
}
else
$wert = $nichtneu;
}
else
{
// Cookie mit einer Lebensdauer von 30 Tagen
setCookie("coolpixxeinzel", $uebergabe, time()+2073600);
$wert = $schreib;
}
[/PHP]

das weiß ich jetzt nicht wie ich das machen muss


18.

Ich stehe kurz vor einer Krise! Lässt Du Dir das komplette Script hier zusammenbasteln? Welchen Sinn soll das haben:

$file_mtime .= ";".date ("F d Y H:i:s", filemtime($file2));
Code:                   In Zwischenablage kopieren (nur IE)
2">

So hast Du in $latest_mtime den Unix-Timestamp der letzen Änderung und mehr brauchst Du nicht! Man darf trotz Forum ruhig noch mitdenken.

*** Nobody ***


19.

nein mach schon selber auch immer mit nur die leute haben immer bessere ideen *g+ aber viellen dank für die hilfe!!


20.

eigentlich müsste ich doch jetzt nur noch in einem cookie das aktuelle datum speicher und dann beim nächsten aufruf vergleichen ob es einen file gibt der ein neues datum das das letzet gespeicherte hat wenn ja dann gebe ich ein echo für diesen file aus mit dem filenamen wenn nein dann gebe ich garnicht aus oder??

das ganze muss ich doch im prinzip zwischen

[PHP]
if ($file_mtime > $latest_mtime)
$latest_mtime = $file_mtime;
[/PHP]

einbauen oder???


21.

so jetzt habe ich mal etwas getestet aber irgendwie haut das nicht hin normal müsste es ja so gehen

[PHP]
$neu = "<div align='center'><font color='#FF0000'>Ein neuer Kommentar</font></div>";

$ordner = "./";

$handle = opendir($ordner);

// $latest_mtime = 0;

while ($file2 = readdir ($handle))
{
if (($file2 != "." && $file2 != "..") AND
(ereg('.dat$', strtolower($file2))))

{
$file_mtime = filemtime($file2);
if (isset($_COOKIE["coolpixxeinzel"]))
{
$latest_mtime = $_COOKIE["coolpixxeinzel"];
if ($file_mtime > $latest_mtime)
{
echo $file_mtime;
echo $latest_mtime;
echo $neu;
$latest_mtime = $file_mtime;
ob_start();
setCookie("coolpixxeinzel", $latest_mtime, time()+2073600);
ob_end_clean();
}
else if ($file_mtime >= $latest_mtime)
{

}

}
}
}
closedir($handle);
[/PHP]

was mach ich da für einen fehler musst nicht gleich das ganze scritp schreiben was ich denke was du auch nciht machen wirst ich will nur tips haben was da falsch ist


22.

Zitat:
was mach ich da für einen fehler
Ganz ehrlich? Du denkst einfach nicht nach! Da wird fröhlich drauf losgeschrieben, ohne überhaupt mal nachzudenken, wie das gehen könnte.

Was soll die Cookie-Abfrage in der Schleife? Was soll setCookie in der Schleife? Warum speicherst Du das Datum der zuletzt erzeugten Datei. Warum habe ich Dir das Vorgehen schon gepostet (015)?

*** Nobody ***


23.

ja ich habe mir eben gedacht ich habe ja jetzt das akktuelle datum wenn ich das jetzt mit allen files vergleiche und dann eben das echo ausgebe dann müsste das hinaun so hab ich mir das gedacht deswegen habe ich das auch in die schleife getahn

ich muss ja in prinzip jeden file wieder überprüfen lassen welcher neu ist und welche älter als das gespeicherte datum in dem cookie ist sonst kann ich ja nur gesammt ausgeben lassen ob es überhaupt neu kommtare gibt oder nicht ich will ja genau das bild bzw den file haben der einen neuen kommentar hat oder lieg ich da flasch???


24.

Code:                   In Zwischenablage kopieren (nur IE)
3">

*** Nobody ***


25.

super vielen dank das hätte wohl noch etwas gedauert bis ich das hinbekommen hätte wenn überhaupt!!!


26.

jetzt hätte ich doch noch eine frage könnte man da bei $file wo er den Namen ausgibt

[PHP]
foreach($files as $file)
echo $file . "<br>\n";
[/PHP]

irgendwie das so machen das er da die ersten 5 zeichen des files nimmt und dann die nummer von 001,002 usw. dranhängt

mfg
Druckgott


27.

Ja, könnte man, wie das geht, findet man sogar in der Doku:

http://de3.php.net/manual/de/function.substr.php

*** Nobody ***


28.

ich dachte mir so das hatte ich auch schon mit dem substr.

[PHP]
foreach($files as $file)
$endfile = substr("$file", 0, 8);
echo "<div align='center'><font color='#FF0000'>$endfile</font></div>" . "<br>\n";
[/PHP]

aber da listet er ja nur noch einen file auf


29.

Wenn in einer Schleife mehr als eine Anweisung ausgeführt werden soll, was macht man da? Richtig, geschweifte Klammern setzten!

*** Nobody ***


30.

ok danke haut hin


Hier gehts zum Orginal Eintrag "Array Problem" im Forum
 
phpforum.de | Impressum | Handy Bundles