Ar php izdzest txt faila vardu?
Moderatori: janis.wd, Vecākie lietotāji
Ar php izdzest txt faila vardu?
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?
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?
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
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 http://paste.php.lv
Otrais būtu ieteicams str_replace norādīt COUNT
Un ieliec pilnu skriptu normālā formātā piemēram http://paste.php.lv
Code: Select all
<?php
$lines = file('file.txt');
$jaunais_faila_saturs = array();
foreach($lines as $rindinja){
$tmp = explode(".",$rindinja);
$linijas_numurs = $tmp[0];
unset($tmp[0];
$ip = implode(".",$tmp);
// dari ko gribi ar savu $ip un $linijas_numurs;
$ip = "[".$ip."]"; // prikolam apliksim ar kvadrātiekavām, nevis padzēsīsim
$jaunais_faila_saturs[] = $linijas_numurs.".".$ip;
}
// rakstam atpakaļ faila saturu.
file_put_contents("file.txt", implode("\n", $jaunais_faila_saturs));
Last edited by usver on 23 Nov 2009, 16:49, edited 1 time in total.
http://paste.php.lv/ba17f5a97f1a9d305ae ... 4?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ā.
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ā.
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
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ā?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?
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
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.
http://paste.php.lv/903ff9f5951e783e7d4 ... 2?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.
2) fig tev vajag tos skaitļus rindu sākumos, ko pierakstīji? taisi bez tiem, būs daudz vienkāršāk.
http://paste.php.lv/903ff9f5951e783e7d4 ... 2?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 $ipusver 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.
http://paste.php.lv/903ff9f5951e783e7d4 ... 2?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.
Pēc tavas darbības tiek vienkārši pielikts gandrīz katrai ip simbolins klāt priekšā, nevis dzēsts.
http://paste.php.lv/742026cdace24049363 ... e?lang=php
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
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 "\r\n", tad lietot file_put_contents('file.txt', implode("\r\n", $lines));. PHP sapratīs arī tāpat.
+ lietot if(strcmp(trim($one_ip), $ip) == 0){
tas kods ideāli strādā, ja skaitļu nav un failā ir plikas IP adreses.
ja lieto tizlo windows notepad, kurš saprot tikai "\r\n", tad lietot file_put_contents('file.txt', implode("\r\n", $lines));. PHP sapratīs arī tāpat.
+ lietot if(strcmp(trim($one_ip), $ip) == 0){
Code: Select all
$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);
}
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.
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.
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
tavs variants izdzesa ip, bet to rindu atstaja tuksu sanak, ka faila palikaWuu wrote:Code: Select all
$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); }
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.
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Takš pielabo nejau priekš sevis rakstu
Code: Select all
$contents = str_replace($search."\n",'',$contents);
http://paste.php.lv/37f0478ca5a5f41de5f ... f?lang=phpusver 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 "\r\n", tad lietot file_put_contents('file.txt', implode("\r\n", $lines));. PHP sapratīs arī tāpat.
+ lietot if(strcmp(trim($one_ip), $ip) == 0){
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
PS. Wuu ar tavu kodu gan kkas nestrādā, viņš vispār neizdzēsa neko.
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Visātrākais ceļš uz pareizi atrisinātu uzdevumu ir pareizi nodefinēts uzdevums :-|
Mhh?
Code: Select all
$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);
Дебилы, бл*ть...
Paldies tu esi Dievs :*damncrow wrote:Visātrākais ceļš uz pareizi atrisinātu uzdevumu ir pareizi nodefinēts uzdevums :-|
Mhh?Code: Select all
$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);
paldies arī pārējiem, kuri palīdzēja. uz tikšanos.
Mūžu dzīvo, mūžu mācies...
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens
Neskati vīru pēc cepures...
Twitter Konts - http://www.twitter.com/archeens