Zurück   klamm-Forum > Virtual World > Programmierung > Scripts & Software

Like Tree6Likes
  • 1 geposted von LasMiranda
  • 1 geposted von apolle
  • 1 geposted von apolle
  • 1 geposted von apolle
  • 1 geposted von theHacker
  • 1 geposted von apolle

Antwort
 
Themen-Optionen Ansicht
Alt 21.11.2014, 19:38:02   #1 (permalink)
nick25
Erfahrener Benutzer

ID: 205997
Lose senden

Reg: 30.05.2009
Beiträge: 478
Standard PHP Script

suche ein php script/schnipsel, das automatsch in jeder php datei oben in der ersten zeile ein copyright einfügt.

die verzeichnissstrucktur ist so:



hat vieleicht jemand was rumliegen oder hat eine url? google spuckt nichts vernünftiges aus

vielen dank
 
nick25 ist offline   Mit Zitat antworten
Alt 21.11.2014, 20:29:22   #2 (permalink)
LasMiranda
kanz pöhse
Benutzerbild von LasMiranda

ID: 28058
Lose senden

LasMiranda eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 3.071
Standard

Alternativ: mit einer FOR/EACH-Schleife die Verzeichnisstruktur auslesen, Datei lesen, Copyright schreiben, alten Inhalt anhängen.

Und: Struktur, Projekte
nick25 gefällt das.
Gruß, Martin
LasMiranda ist offline   Mit Zitat antworten
Alt 21.11.2014, 21:21:16   #3 (permalink)
apolle
Erfahrener Benutzer

Reg: 25.09.2007
Beiträge: 698
Standard

Auf Unix-Systemen am schnellsten auf der Kommandozeile:
Code:
1:
find . -name \*.php -exec sed -i.bak -e 1iCopyright\ 2014 "{}" \;

Für mehrere Dateitypen:
Code:
1:
2:
3:
4:
for type in css html js php xml do find . -name \*.$type -exec sed -i.bak -e 1iCopyright\ 2014 "{}" \; done

Wenn man .bak wegläßt wird kein Backup der bearbeiteten Datei(en) angelegt.
nick25 gefällt das.
 

Geändert von apolle (21.11.2014 um 21:31:47 Uhr)
apolle ist offline   Mit Zitat antworten
Alt 22.11.2014, 08:30:02   #4 (permalink)
nick25
Erfahrener Benutzer

ID: 205997
Lose senden

Reg: 30.05.2009
Beiträge: 478
Standard

Zitat:
Zitat von LasMiranda Beitrag anzeigen
Alternativ: mit einer FOR/EACH-Schleife die Verzeichnisstruktur auslesen, Datei lesen, Copyright schreiben, alten Inhalt anhängen.

Und: Struktur, Projekte
Das habe ich schon probiert. irgendwie funktioniert das nicht. deshalb fragte ich ja nach irgendwas fertiges.

Zitat:
Zitat von apolle Beitrag anzeigen
Auf Unix-Systemen am schnellsten auf der Kommandozeile:
Code:
1:
find . -name \*.php -exec sed -i.bak -e 1iCopyright\ 2014 "{}" \;

Für mehrere Dateitypen:
Code:
1:
2:
3:
4:
for type in css html js php xml do find . -name \*.$type -exec sed -i.bak -e 1iCopyright\ 2014 "{}" \; done

Wenn man .bak wegläßt wird kein Backup der bearbeiteten Datei(en) angelegt.
vielen dank apolle, für unix kann ich es nicht brauchen. es soll php sein
 
nick25 ist offline Threadstarter   Mit Zitat antworten
Alt 22.11.2014, 16:39:22   #5 (permalink)
apolle
Erfahrener Benutzer

Reg: 25.09.2007
Beiträge: 698
Standard

Guckst Du hier:
http://www.selfphp.de/praxisbuch/pra...h.php?group=38 (Übersicht)
http://www.selfphp.de/praxisbuch/pra...e=223&group=38 (Dateioperationen)
http://www.selfphp.de/praxisbuch/pra...e=224&group=38 (Verzeichnisoperationen)

Oder machst Komandozeile:
https://www.cygwin.com/
http://www.heise.de/download/cygwin.html
nick25 gefällt das.
 
apolle ist offline   Mit Zitat antworten
Alt 23.11.2014, 22:01:15   #6 (permalink)
nick25
Erfahrener Benutzer

ID: 205997
Lose senden

Reg: 30.05.2009
Beiträge: 478
Standard

ich habe es jetzt so gelöst:

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
<?php

function verzeichnis($dir "./") {
    if(!
$dh opendir($dir)) return false;
   
    if(
substr($dir, -1) != "/"$dir .= "/";
    
$files = array();
   
    while(
$file readdir($dh)) {
        
$path $dir $file;
        if(
$file == "." || $file == "..") continue;
       
        if(
is_dir($path)) {
            if(!
$sub verzeichnis($path)) continue;
           
            
$files array_merge($files$sub);
        }
        else {
            
$files[] = $path;
        }
    }
   
    
closedir($dh);
    
sort($files);
    return 
$files;
}
$dir verzeichnis("./alt/");
$php preg_grep("/\.(php?p)$/i"$dir);

foreach(
$php as $path
{
    
$inhalt file_get_contents$path ); 
    
$copyr '
    <?php 
    /**
    *
    *    
    *   hier kommt das Copyright hin.
    */
    ?>
    
    '
.$inhalt.'';
    
        
$path1 str_replace 'alt''neu'$path );
        
$datei fopen($path1,"w");
        
fwrite($datei$copyr);
        echo 
$path.' geschrieben <br>'
}
?>
er schreibt die neuen datein im ordner "neu" nicht. wo liegt der fehler?
 
nick25 ist offline Threadstarter   Mit Zitat antworten
Alt 24.11.2014, 00:38:49   #7 (permalink)
apolle
Erfahrener Benutzer

Reg: 25.09.2007
Beiträge: 698
Standard

Mit fopen() können nur Dateien in vorhandenen Verzeichnissen angelegt werden, wenn das Zielverzeichnis nicht existiert schlägt der Aufruf fehl. Der Rest funktionuckelt.

edit: Funktionuckelt nur fast: Außerdem muß '?p' (Zeile 28, preg_grep) raus. (Über das 'Warum?' denke ich aber frühestens beim nächsten Brinkhoffs nach. Oder auch nicht...)
nick25 gefällt das.
 

Geändert von apolle (24.11.2014 um 01:36:26 Uhr)
apolle ist offline   Mit Zitat antworten
Alt 24.11.2014, 17:16:30   #8 (permalink)
nick25
Erfahrener Benutzer

ID: 205997
Lose senden

Reg: 30.05.2009
Beiträge: 478
Standard

Zitat:
Zitat von apolle Beitrag anzeigen
edit: Funktionuckelt nur fast: Außerdem muß '?p' (Zeile 28, preg_grep) raus. (Über das 'Warum?' denke ich aber frühestens beim nächsten Brinkhoffs nach. Oder auch nicht...)
verstehe ich nicht. wieso muß das raus?

könntest du mir sagen wie ich es hinbekomme das er anhand der variable $path die neuen php dateien und verzeichnisse schreibt?
 
nick25 ist offline Threadstarter   Mit Zitat antworten
Alt 24.11.2014, 20:40:25   #9 (permalink)
theHacker PREMIUM-User
sieht vor lauter Ads
den Content nicht mehr
Benutzerbild von theHacker

ID: 69505
Lose senden

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.681
Standard

Zitat:
Zitat von nick25 Beitrag anzeigen
verstehe ich nicht. wieso muß das raus?
Weil du hoffentlich keine Datei hast, die eine .phpp-Endung hat
nick25 gefällt das.
NEU theHacker.blog NEU
– It's just a glitch in the Matrix –

OpenIsles - das freie Insel-Aufbauspiel | www.theHacker.ws v3 | WhatPulse-Team
theHacker ist offline   Mit Zitat antworten
Alt 24.11.2014, 21:20:22   #10 (permalink)
apolle
Erfahrener Benutzer

Reg: 25.09.2007
Beiträge: 698
Standard

Zitat:
Zitat von nick25 Beitrag anzeigen
verstehe ich nicht. wieso muß das raus?
Kann ich nur raten, aber wenn es drin steht bekomme ich 'ne Fehlermeldung. Vlt wissen die preg_grep-Profis dazu mehr.

Zitat:
Zitat von nick25 Beitrag anzeigen
könntest du mir sagen wie ich es hinbekomme das er anhand der variable $path die neuen php dateien und verzeichnisse schreibt?
Entweder legst Du schon während der Suche alle Verzeichnisse an oder Du fügst unmittelbar vor fopen() eine Schleife ein die die in $path enthaltenen Verzeichnisse erstellt.

Für Variante 1 reicht ein mkdir-Aufruf im auf if(is_dir($path)) folgenden Block, uU gibt es unter ./neu dann aber einen Haufen leerer Verzeichnisse:

mkdir(str_replace ( 'alt', 'neu', $path ));

Variante 2 ist aufwendiger, hat aber den Vorteil, daß nur Verzeichnisse angelegt werden in denen zu bearbeitende Dateien gefunden wurden. Aus './alt/diese/Datei/liegt/ganz/woanders.html' müssten dazu folgende "Aufrufe" generiert werden:

mkdir neu/diese
mkdir neu/diese/Datei
mkdir neu/diese/Datei/liegt
mkdir neu/diese/Datei/liegt/ganz
fopen neu/diese/Datei/liegt/ganz/woanders.html
nick25 gefällt das.
 
apolle ist offline   Mit Zitat antworten
Alt 26.11.2014, 10:47:54   #11 (permalink)
nick25
Erfahrener Benutzer

ID: 205997
Lose senden

Reg: 30.05.2009
Beiträge: 478
Standard

vielen dank, jetzt klappt es.

wer es brauchen kann.

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
<?php

function verzeichnis($dir "./") {
    if(!
$dh opendir($dir)) return false;
   
    if(
substr($dir, -1) != "/"$dir .= "/";
    
$files = array();
   
    while(
$file readdir($dh)) {
        
$path $dir $file;
        if(
$file == "." || $file == "..") continue;
       
        if(
is_dir($path)) {
            if(!
$sub verzeichnis($path)) continue;
           
            
$files array_merge($files$sub);
        }
        else {
            
$files[] = $path;
        }
    }
   
    
closedir($dh);
    
sort($files);
    return 
$files;
}
$dir verzeichnis("./alt/");
$php preg_grep("/\.(php)$/i"$dir);

foreach(
$php as $path
{
    
$inhalt file_get_contents$path ); 
    
$copyr '
    <?php 
    /**
    *
    *    12345
    *   hier kommt das Copyright hin
    */
    ?>
    
    '
.$inhalt.'';
    
        
$path1 str_replace 'alt''neu'$path );
        
$dirname dirname($path1);
        
        if (
file_exists($dirname)) 
        {
            
//echo "Die Datei $dirname existiert";
        

        else 
        {
            
mkdir($dirname0777true);
        }
        
        
$datei fopen($path1,"w");
        
fwrite($datei$copyr);
        echo 
$path.' geschrieben <br>'

}
?>
 
nick25 ist offline Threadstarter   Mit Zitat antworten
Antwort

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[V] Prämien Script | Freue-mich-schon Script | Clone-Scripte | CashClixx Script DRose Lose4Scripts (erledigt) 8 20.05.2013 11:50:13
[V] Verschiedene Scripte - Webkatalog Script, Shop Script, Fantausch Script, Community Script und mehr *50% Rabatt* DRose Lose4Scripts (erledigt) 19 06.03.2012 19:03:13
[V] Freebie Script - neue Version, Bookmark Script, Gewinnspiel Script und Gutschein Script DRose Lose4Scripts (erledigt) 8 23.01.2011 18:50:16
Suche Bettel Script , konto stand Script, PN sytem, anmeldungs Script Lach Lose4Scripts (erledigt) 7 14.10.2007 14:35:36


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36:51 Uhr.