Sākumlapa › Forumi › Mājas lapu izstrāde › Servera puse (php, java, ruby, perl, python) › Ar php izdzest txt faila vardu?
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?
Otrais būtu ieteicams str_replace norādīt COUNT
Un ieliec pilnu skriptu normālā formātā piemēram
$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?
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ā.
$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ā?
2) fig tev vajag tos skaitļus rindu sākumos, ko pierakstīji? taisi bez tiem, būs daudz vienkāršāk.
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.
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.
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.
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));
+ lietot if(strcmp(trim($one_ip), $ip) == 0){
$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
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.
$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.
$contents = str_replace($search.”n”,”,$contents);
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));
+ 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 🙂 Piedo, ka ātrāk nepateicu.
PS. Wuu ar tavu kodu gan kkas nestrādā, viņš vispār neizdzēsa neko.
$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?
PS. Wuu ar tavu kodu gan kkas nestrādā, viņš vispār neizdzēsa neko.
Windows rn, Linux n
Visātrākais ceļš uz pareizi atrisinātu uzdevumu ir pareizi nodefinēts uzdevums 😐
$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.
Preses relīzes