PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   php script in eine andere datei per fwrite befehl hinein fügen (https://www.php-resource.de/forum/php-developer-forum/92277-php-script-in-eine-andere-datei-per-fwrite-befehl-hinein-fuegen.html)

terminatorxxl 01-06-2008 10:47

php script in eine andere datei per fwrite befehl hinein fügen
 
hey ich möchte dieses script per fwrite oder etwas anderes in jede datei die geschrieben werden soll per script hineinkopieren
PHP-Code:

<?php

   
    
    $serialized_counterData 
'a:6:{s:9:"yesterDay";s:10:"04-08-2007";s:7:"currDay";s:10:"01-01-

2002";s:5:"toDay";i:2;s:6:"visits";i:0;s:4:"hits";i:2;s:11:"whoIsOnline";
a:1:{s:9:"127.0.0.1";i:1009840268;}}'
;
    
    
$counterData unserialize($serialized_counterData);
    if(
$counterData['currDay'] != date('d-m-Y'))
    {
        
$counterData['yesterDay'] = $counterData['currDay'];
        
$counterData['currDay']   = date('d-m-Y');
        
$counterData['toDay']   = 0;
    }
    
    if(!isset(
$counterData['whoIsOnline'][$_SERVER['REMOTE_ADDR']]))
    {
        
$counterData['visits']++;
        
$counterData['toDay']++;
    }
    
    
$counterData['hits']++;
    
$counterData['whoIsOnline'][$_SERVER['REMOTE_ADDR']] = time();
    foreach(
$counterData['whoIsOnline'] as $key => $time)
        if(
$time 500 time()) unset($counterData['whoIsOnline']);
        
$myData file_get_contents(__FILE__);
    
$myData preg_replace('/\$serialized_counterData = \'.*\';/siU',
        
'$serialized_counterData = \''.serialize($counterData).'\';'$myData);
    
$myFile fopen(__FILE__'wb');
    
fwrite($myFile$myData);
    
fclose($myFile);
        echo(
'Hits: '.$counterData['hits'].'<br />');
    echo(
'Visiters: '.$counterData['visits'].'<br />');
    echo(
'Yesterday: '.$counterData['yesterDay'].'<br />');
    echo(
'Today: '.$counterData['toDay'].'<br />');
    echo(
'Online: '.count($counterData['whoIsOnline']).'<br />');
    
?>


combie 01-06-2008 10:54

Bahnhof!
Schon von include gehört?
Das wurde extra für solche Zwecke erfunden.

Und brich bitte deinen Code um.
Sonst hagelt es hier Mäcker!!

terminatorxxl 01-06-2008 12:11

ja aber genau das will ich nicht es soll ya für jede datei extra gezählt werden und nciht alle den selben counter status haben.-.-

combie 01-06-2008 12:44

Das soll mal einer verstehen...
Du willst das gleiche, aber nicht das gleiche!

Mach doch erstmal ein paar Tutorials und stecke den Kopf in die Bücher. Danach weißst du dann was alles möglich ist und kannst dein Problem evt. selber lösen, zumindest besser formulieren.

terminatorxxl 01-06-2008 13:12

also ich mach es nochmal ausführlich
ich möchte das dieses script in jeder datei eingebunden ist und zwar seperat weil das script dadurch die besucher für jede seite wo es eingebunden ist seperat zählt und nicht alle die selbe zahl an besuchern haben wenn ich es durch nen include befehl mache

combie 01-06-2008 13:28

Und ich sage dir nochmal, dass dein Konzept daneben ist!

Selbstmodifizierender Code in einer Webserverumgebung und dann auch noch ohne Locking ist Softwaretechnischer Selbstmord!

Mache dich kundig.
Meine Hilfe endet hier.

Und brich endlich deinen Code um!!

Blackgreetz 01-06-2008 13:36

Du willst nen Besucherzähler pro explizierter Datei?

Dann würde ich zum chCounter raten...

Deine Idee ist so nicht umsetzbar..

mfg
ps: Bitte Code umbrechen..

wshbg 01-06-2008 15:23

Moin,
ich denke man kann das machen.
Erweitere $counterData['hits'] zu einem array of array und verwende z.B. den Dateinamen als Index. Den kannst Du ermitteln aus dem $_SERVER[] Array.
Und wichtig: beherzige den Vorschlag bezüglich Locking, siehe oben.

Wilfried

jmc 01-06-2008 16:08

Es ist schon durchführbar, aber wie gesagt nicht wirklich sinnvoll...
Dafür sind doch z.B. Datenbanken da und du könntest genausogut eine einzige ini- Datei nehmen statt so viele.

wshbg 01-06-2008 16:34

Zitat:

Original geschrieben von jmc
du könntest genausogut eine einzige ini- Datei nehmen statt so viele.
:confused: Das ist eine einzige Datei

combie 01-06-2008 16:47

Nachschlag:
  • Da ein Automat nicht automatisch die richtige Stelle finden kann, kann der Code auch nicht automatisch eingefügt werden.
  • Redundant, weil der Code mehrfach eingefügt werden soll. Unwartbar!
  • Das serialisierte Array soll in die aufgerufene Datei immer wieder eingefügt werden. Selbstmodifizierender Code ist im PHP Bereich Unsinn!
  • Das fehlende Locking.
Diese Komination ist so grausam, dass man meines Erachtens nach mit Fug und Recht sagen darf:
DAS GEHT SO NICHT!

Klar könnte man Mittel und Wege finden das Vorhaben zu realisieren, aber dann MUSS man an den Grundfesten schütteln. Und das kann der TE scheinbar nicht. Ich glaube auch nicht, dass er den Code selber geschrieben hat.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:08 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG