Visualizzazione risultati 1 fino 7 di 7

Discussione: Replace script modifica file una tecnica da suggerire ?

  1. #1
    Guest

    Predefinito Replace script modifica file una tecnica da suggerire ?

    ho creato una modifica
    http://docs.google.com/Doc?id=dfwbdxk_87qzgjzc6&hl=en

    vorrei creare uno script che effettuasse le modifiche senza che l'utente finale mettesse mano al codice

    purtroppo uno str_replace non basta , mi spiego meglio è possibile che una stinga si ripresenti più volte , io vorrei che modificasse solo alcune volte

    esempio ho
    Codice PHP:
    $db->query();
    viene trasformato in

    Codice PHP:
    $db->query();
    //Codice Da Aggiungere

    $q = "UPDATE #__{vm}_orders SET";
    $q .= " order_status='" . $d["order_status"] . "' ";
    $q .= ", track_num='" . $d["track_num"] . "' ";
    $q .= ", mdate='" . $timestamp . "' ";
    $q .= "WHERE order_id='" . $d["order_id"] . "'";
    $db->query($q);
    //Fine Aggiunta
    beh fin qui facile se $db->query(); si presentasse solo una volta , ma $db->query(); si presenta più volte nello stesso file e io voglio modificare solo quello che viene chiamato in riga 146

    mi suggerite una tecnica da adottare ? in modo da non modificarli tutti ma solo quello che mi necessita.
    grazie

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Non ho capito il problema.
    Devi fare una patch per uno script?
    Non puoi sostituire tutto il file?
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da binarysun Visualizza messaggio
    Non ho capito il problema.
    Devi fare una patch per uno script?
    Non puoi sostituire tutto il file?
    si , devo fare una patch

    no non posso sostituire , è molto probabile che l'utente finale installando altr modifiche abbia già modificato il file, quindi il file puo' cambiare da utente ad utente.

    inoltre non posso modificare solo la prima occorrenza poichè non è detto che sia la prima che voglia modificare
    Codice PHP:
    If you want to replace only the first occurence of a string you can use this function:

    <?php
    function str_replace_once($needle, $replace, $haystack) {
    // Looks for the first occurence of $needle in $haystack
    // and replaces it with $replace.
    $pos = strpos($haystack, $needle);
    if (
    $pos === false) {
    // Nothing found
    return $haystack;
    }
    return
    substr_replace($haystack, $replace, $pos, strlen($needle));
    }
    ?>

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Se l'utente può averci messo mano non puoi.
    Non puoi per il semplice fatto che non hai un riferimento assoluto nel file che vuoi modificare.

    L'utente potrebbe averlo modificato in mille modi rischiando che la tua patch provochi danni.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da binarysun Visualizza messaggio
    Se l'utente può averci messo mano non puoi.
    Non puoi per il semplice fatto che non hai un riferimento assoluto nel file che vuoi modificare.

    L'utente potrebbe averlo modificato in mille modi rischiando che la tua patch provochi danni.
    e se l'utente non ci avesse messo mano ? (magari inserisco a caratteri cubitali che chi ha installato modifiche deve farlo a mano ...o creo una funzione di controllo sul file.)

    nel caso in cui il file è quello originale senza modifiche è possibile creare lo script? e che tecnica vado ad usare?
    Ultima modifica di Swedenfox : 14-09-2009 alle ore 12.52.47

  6. #6
    Guest

    Predefinito

    nessuna soluzione quindi?

  7. #7
    cadwork non è connesso Neofita
    Data registrazione
    29-10-2007
    Messaggi
    3

    Predefinito

    Citazione Originalmente inviato da Swedenfox Visualizza messaggio
    nessuna soluzione quindi?

    Io cercherei la stringa "//Codice Da Aggiungere" che c'e' nella riga sotto il db->query , e inserirei il resto del codice php da quel punto in poi ( magari facendo un controllo che nella riga sopra ci sia ancora db->query)

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •