PHP Datein bearbeiten

  • Hallo Boardgemeinde,

    Ich habe ein problem, habe einige FlashGames die ich automatisch bearbeiten möchte!

    1. öffnen einer php Datei
    2. die php Datei am besten mit wordpad öffnen, da dies auf den meisten PC's vorhanden ist
    3. 11 Namen in der offenen php Datei bearbeiten, bsp: gname in 'gname' umwandeln siehe Anhang
    4. wenn alles erledigt ist, soll die bearbeitete Datei gespeichert werden unter dem selben Namen.

    Da ich absoluter Neuling bin, hoffe ich das mir jemand unter die arme greifen kann.

    Herzlichen Dank
    Yakuzza

  • hab heute meinen sozialen^^

    [autoit]


    $php = FileRead("deine php datei.php")
    $php = StringReplace($php, "gname", "'gname'")
    $php = StringReplace($php, "gtitle", "'gtitle'")
    $php = StringReplace($php, "bgcolor", "'bgcolor'")
    $php = StringReplace($php, "gwidth", "'gwidth'")
    $php = StringReplace($php, "gheigh", "'gheigh'")
    $php = StringReplace($php, "active", "'active'")
    $php = StringReplace($php, "gcat", "'gcat'")
    $php = StringReplace($php, "highscore_type", "'highscore_type'")
    $php = StringReplace($php, "gwords", "'gwords'")
    $php = StringReplace($php, "object", "'object'")
    $php = StringReplace($php, "gkeys", "'gkeys'")
    $file = FileOpen("deine php datei.php", 2)
    FileWrite($file, $php)
    FileClose($file)

    [/autoit]


    ist jetzt die langsamste/umfassendste lösung aber zum verständnis besser^^

    Padmak

  • Und hier die nichtlesbare Version:

    Spoiler anzeigen
    [autoit]

    $sPHP = FileRead("deine php datei.php")

    [/autoit] [autoit][/autoit] [autoit]

    $sPHP = StringRegExpReplace($sPHP,"([\w]+)(.*?)=>(.*?)","'$1'$2=>$3")

    [/autoit] [autoit][/autoit] [autoit]

    $hFile = FileOpen("deine php datei.php", 2)
    FileWrite($hFile, $sPHP)
    FileClose($hFile)

    [/autoit]

    Stilgar

  • Ich bin restlos begeistert das ihr mir das erstellt habt und es funktioniert auch
    das einzige was ich jetzt noch verstehen muß, wie schaffe ich es, das ich eine
    php datei öffne, wo ich aber nicht den genauen Namen nicht kenne (*.php) funktioniert nicht.

    MfG
    Yakuzza

  • Vielleicht mit einem Dateidialog?

    Spoiler anzeigen
    [autoit]

    $sDatei = FileOpenDialog ( "Dateiauswahl", @workingdir, "PHP (*.php)")
    If @error Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    $sPHP = FileRead($sDatei)

    [/autoit] [autoit][/autoit] [autoit]

    $sPHP = StringRegExpReplace($sPHP,"([\w]+)(.*?)=>(.*?)","'$1'$2=>$3")

    [/autoit] [autoit][/autoit] [autoit]

    $hFile = FileOpen($sDatei, 2)
    FileWrite($hFile, $sPHP)
    FileClose($hFile)

    [/autoit]
  • Herzlichen Dank, das mit Dialog ist schon ne feine sache und ich bin voll auf zu frieden
    dies erspart mir eine menge arbeit, vielleicht schaff ich es auch ohne Dialog ;)

    schönen abend
    Yakuzza

  • Hi,
    es geht auch anders.

    z.B.:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $sDatei = _FileListToArray(@DesktopDir, "*.php", 1) ; pfad kann noch angepasst werden
    If @error Then Exit
    _ArrayDisplay($sDatei)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To UBound($sDatei) - 1
    $sPHP = FileRead($sDatei[$i])

    [/autoit] [autoit][/autoit] [autoit]

    $sPHP = StringRegExpReplace($sPHP, "([\w]+)(.*?)=>(.*?)", "'$1'$2=>$3")

    [/autoit] [autoit][/autoit] [autoit]

    $hFile = FileOpen($sDatei[$i], 2)
    FileWrite($hFile, $sPHP)
    FileClose($hFile)
    Next

    [/autoit]


    Aber Achtung, das Script ändert so wie es ist alle PHP-Dateien, die sich auf dem Desktop befinden!

    anno2008

  • Und hier die nichtlesbare Version:

    Spoiler anzeigen
    [autoit]

    $sPHP = FileRead("deine php datei.php")

    [/autoit] [autoit][/autoit] [autoit]

    $sPHP = StringRegExpReplace($sPHP,"([\w]+)(.*?)=>(.*?)","'$1'$2=>$3")

    [/autoit] [autoit][/autoit] [autoit]

    $hFile = FileOpen("deine php datei.php", 2)
    FileWrite($hFile, $sPHP)
    FileClose($hFile)

    [/autoit]


    Stilgar


    Hmmmm ...... magst Du ein wenig Licht ins Dunkel der Ahnungslosen bringen, wie kommt man auf "([\w]+)(.*?)=>(.*?)","'$1'$2=>$3",
    wenn man " durch " ' ersetzen will???? 8|?( :wacko:

  • Es wird nichts ersetzt, sondern nur die Wörter in ' eingschlossen:

    Also in aus einem Text wie, in diesem Fall:
    ganme => "3d..."

    soll das hier werden:
    'ganme' => "3d..."


    Dazu erstmal den Text suchen mit:
    ([\w]+)(.*?)=>(.*?)

    und ersetzen mit:
    '$1'$2=>$3

    heißt nichts anderes als, suche:

    ([\w]+) = Alle "Wortzeichen" in beliebiger Anzahl, aber mindestens ein Zeichen
    (.*?) = Alle Zeichen
    => = genau diese Zeichenfolge
    (.*?) = Alle Zeichen

    Alles was in Klammer ist, ist eine Gruppe. Diese Gruppen können in dem zu ersetzenden Sring wiederrum durch Platzhalter
    ersetzt werden. Platzhalter sind $1 ... $9

    Damit ergibt sich folgendes zum ersetzen:
    '$1' = Das gefundene Wort wird in ' eingefügt und dann
    $2=>$3 = der Rest

    Das suchen nach => ist drin, damit der Text etwas eindeutiger indentifiziert werden kann.

  • Hi Stilgar,

    vielen Dank für den Versuch, aber die Erklärungen ..... hmmm ...... :whistling:

    ich stelle fest hier fehlen mir eindeutig wesentliche Grundlagen, aber ich weiss noch nicht mal nach was ich suchen soll .... diese "Suchsprache" --->>> was ist das, wonach muss ich suchen um mich hier einzulesen??? Bitte noch um kurzen Tip, dann werde ich erstmal an die Basis abtauchen ......

  • äh jam
    links neben AutoIt Downloads auf des + klicken (wenns minimiert ist)
    und da sitzt ganz dick und fett "Hilfe: Deutsch (1. Januar)"

    Padmak

  • Hi,
    das Tutorial, das Stilgar gepostet hat ist echt gut :).
    Ich hab mir einmal 2h Zeit genommen und würde sagen, ich hab einen guten Anfang gemacht. Ich hab das wirklich noch nie so gut erklärt gesehn :)

    Danke :thumbup:

    Einmal editiert, zuletzt von anno2008 (2. Februar 2009 um 18:03)