Ar php izdzest txt faila vardu?

Tiek skatīts 1 ieraksts (no 17 kopumā)
  • Autors
    Ieraksti
  • #150042
    archeens
    Participant

    Sveiki notepad lietotāji. Nepieciešama maza konsultācija.

    Man ir nepieciešams, lai palaižot php failu tiek idzēsta ip, kura glabājas .txt failā.

    pieņemsim, ka vajag izdzēst ip 10.10.10.10. Nevajag line idzēst, bet lai php kods samekle tieši ip kombināciju.

    pieņemot ka txt failā atrodas šī info:

    1.20.20.20.20

    2.10.10.10.10

    3. 30.30.30.30

    Mēģināju šādi, bet nezidevās:

    $strText = file_get_contents( ‘file.txt’ );

    $strFind = ’10’;

    $blMatch = false;

    if( preg_match( “/$strFind/”, $strText ) ) {

    $blMatch = true;

    $strText = str_replace( $strWord, ”, $strText );}

    ir kādi ieteikumi?

    #218706
    Wuu
    Participant

    Pirmā kļūme tu meklē “10” bet cik redzu tava TXT “10” nav, bet gan “2.10.10.10.10 “

    Otrais būtu ieteicams str_replace norādīt COUNT

    Un ieliec pilnu skriptu normālā formātā piemēram https://paste.php.lv

    #218707
    usver
    Participant

    Code:


    #218708
    Crow
    Participant

    $strFile = file_get_contents(“file.txt”);

    $strSrch = ‘10.10.10.10’;

    $strFile = str_replace($strSrch, “”, $strFile, $iCount);

    file_put_contents(“file.txt”, $strFile);

    // echo ‘Nodzēsts: ‘.$iCount;

    Vai arī man šodien pirmdiena?

    #218709
    archeens
    Participant

    https://paste.php.lv/ba17f5a97f1a9d305ae7e67b804d9d84?lang=php

    To jā, bet vienalga ieliekot 10.10.10.10 viņš neizdzēš. Kas vēl būtu jaīzdara? tas count kā jāieliek? Esmu tikai iesācējs šajā lietā.

    #218710
    archeens
    Participant

    damncrow wrote:

    $strFile = file_get_contents(“file.txt”);

    $strSrch = ‘10.10.10.10’;

    $strFile = str_replace($strSrch, “”, $strFile, $iCount);

    file_put_contents(“file.txt”, $strFile);

    // echo ‘Nodzēsts: ‘.$iCount;

    Vai arī man šodien pirmdiena?

    Paldies tavs variants ļoti labi strādā. Vēl tik mazs jautājums kā izdarīt, lai viņš tā vietā ko izdzēsa neatstā tukšu line, bet gan nākošais line ierindojas viņa vietā?

    #218711
    usver
    Participant

    1) strādā līdz tam, kad failā būs 2 IP adreses: 10.10.10.10 un 10.10.10.101

    2) fig tev vajag tos skaitļus rindu sākumos, ko pierakstīji? taisi bez tiem, būs daudz vienkāršāk.

    https://paste.php.lv/903ff9f5951e783e7d4bff480bbde732?lang=php

    kas tie par idiotiskiem tagu filtriem te forumā? pusi teksta nodzēš, ja izmanto PHP atverošo tagu un pēc tam =>.

    foruma uzturētājam: ne pirmā reize, kad gļuko kods “code” tagos. to vajag ar htmlspecialchars() vispirms, bet strip_tags() – visam pārējam.

    #218712
    archeens
    Participant

    usver wrote:

    1) strādā līdz tam, kad failā būs 2 IP adreses: 10.10.10.10 un 10.10.10.101

    2) fig tev vajag tos skaitļus rindu sākumos, ko pierakstīji? taisi bez tiem, būs daudz vienkāršāk.

    https://paste.php.lv/903ff9f5951e783e7d4bff480bbde732?lang=php

    kas tie par idiotiskiem tagu filtriem te forumā? pusi teksta nodzēš, ja izmanto PHP atverošo tagu un pēc tam =>.

    foruma uzturētājam: ne pirmā reize, kad gļuko kods “code” tagos. to vajag ar htmlspecialchars() vispirms, bet strip_tags() – visam pārējam.

    Isti nestrādā. ja piemēram es to ip dabūnu no šīs komandas $ip

    Pēc tavas darbības tiek vienkārši pielikts gandrīz katrai ip simbolins klāt priekšā, nevis dzēsts.

    https://paste.php.lv/742026cdace240493631c701d056ed6e?lang=php

    #218713
    usver
    Participant

    pag, tu izlem – tev vajag tos skaitļus rindu sākumā vai nevajag?

    tas kods ideāli strādā, ja skaitļu nav un failā ir plikas IP adreses.

    ja lieto tizlo windows notepad, kurš saprot tikai “rn”, tad lietot file_put_contents(‘file.txt’, implode(“rn”, $lines));. PHP sapratīs arī tāpat.

    + lietot if(strcmp(trim($one_ip), $ip) == 0){

    #218714
    Wuu
    Participant

    Code:


    $filename = ‘file.txt’;
    $search = ‘20.20.20.20’;
    $contents = file_get_contents($filename);
    if (preg_match(’/’.$search.’/’,$contents)) {
    $contents = str_replace($search,”,$contents);
    $handle = fopen(’file.txt’,’w+’);
    fwrite($handle,$contents);
    fclose($handle);
    }

    #218715
    archeens
    Participant

    Skaitļi nav sākumā ir tikai ip daudz rindā. Precīzāk taisu sms unban sistēmu no servera. Tiklidz nosuta sms ir jaidzesh to ip kuru noradija ara no ta faila teksta, vins protams ir .conf fails, bet tas būtību nemaina. Ip adreses failā katra sava rindā ir.

    xx.xx.xx.xx

    xx.xx.xx.xx

    xx.xx.xx.xx

    xx.xx.xx.xx

    pec ta $ip nosaka kadu ip vins ir ievadijis formā, kur prasīja ip un sms kodu.

    #218716
    archeens
    Participant

    Wuu wrote:

    Code:


    $filename = ‘file.txt’;
    $search = ‘20.20.20.20’;
    $contents = file_get_contents($filename);
    if (preg_match(’/’.$search.’/’,$contents)) {
    $contents = str_replace($search,”,$contents);
    $handle = fopen(’file.txt’,’w+’);
    fwrite($handle,$contents);
    fclose($handle);
    }

    tavs variants izdzesa ip, bet to rindu atstaja tuksu sanak, ka faila palika

    xx.xx.xx.xx

    tuks

    xx.xx.xx.xx

    un vēl, ja ir 2 lidzigas ip, piemeram ir:

    10.10.10.10

    10.10.10.100

    un ja vajag izdzest tagad 10.10.10.10, tad pirmo izdzesis un taja paliks ta nullite beigas.

    #218717
    Wuu
    Participant

    Takš pielabo nejau priekš sevis rakstu 🙂

    Code:

    $contents = str_replace($search.”n”,”,$contents);

    #218718
    archeens
    Participant

    usver wrote:

    pag, tu izlem – tev vajag tos skaitļus rindu sākumā vai nevajag?

    tas kods ideāli strādā, ja skaitļu nav un failā ir plikas IP adreses.

    ja lieto tizlo windows notepad, kurš saprot tikai “rn”, tad lietot file_put_contents(‘file.txt’, implode(“rn”, $lines));. PHP sapratīs arī tāpat.

    + lietot if(strcmp(trim($one_ip), $ip) == 0){

    https://paste.php.lv/37f0478ca5a5f41de5f2a5b7aa658e3f?lang=php

    Tā tagad viss ir pareizi ar tavu kodu, Viņš izdzēš. Bet ir lieta tāda, ka aiz ip vēl ir bana laiks, kuram arī jānodzešans būtu, bet tas nenotiek, piemēram:

    xx.xx.xx.xx 11111

    xx.xx.xx.xx 45454

    xx.xx.xx.xx 43435

    Vel tikai tas un viss 🙂 Piedo, ka ātrāk nepateicu.

    PS. Wuu ar tavu kodu gan kkas nestrādā, viņš vispār neizdzēsa neko.

    #218719
    Crow
    Participant

    Visātrākais ceļš uz pareizi atrisinātu uzdevumu ir pareizi nodefinēts uzdevums 😐

    Code:

    $remove = ‘10.10.10.10’;

    $file = fopen(’file.txt’, ‘rb’);
    $newfile = ”;

    while ($line = fgets($file)) {
    list($ip, $bullshit) = explode(” “, $line);
    if (rtrim($ip) != $remove) {
    $newfile = $newfile.$line;
    }
    }

    fclose($file);
    file_put_contents(”file.txt”, $newfile);

    Mhh?

    #218720
    Wuu
    Participant

    archeens wrote:


    PS. Wuu ar tavu kodu gan kkas nestrādā, viņš vispār neizdzēsa neko.

    Windows rn, Linux n

    #218721
    archeens
    Participant

    damncrow wrote:

    Visātrākais ceļš uz pareizi atrisinātu uzdevumu ir pareizi nodefinēts uzdevums 😐

    Code:

    $remove = ‘10.10.10.10’;

    $file = fopen(’file.txt’, ‘rb’);
    $newfile = ”;

    while ($line = fgets($file)) {
    list($ip, $bullshit) = explode(” “, $line);
    if (rtrim($ip) != $remove) {
    $newfile = $newfile.$line;
    }
    }

    fclose($file);
    file_put_contents(”file.txt”, $newfile);

    Mhh?

    Paldies tu esi Dievs :*

    paldies arī pārējiem, kuri palīdzēja. uz tikšanos.

Tiek skatīts 1 ieraksts (no 17 kopumā)
  • Jums ir jāpieslēdzas sistēmai, lai varētu komentēt šo tēmu.
Jaunākais portālā