2013-11-18 2 views
0

Я хочу, чтобы обнаружить, если слово в текстовом файле существует, а затем удалить его .. так, это мой код:Найти и заменить слово в текстовом файле

<?php 
$search = $id; 
$lines = file("./user/".$_GET['own'].".txt"); 
// Store true when the text is found 
$found = false; 
foreach($lines as $line) 
{ 
if(strpos($line, $search) !== false) 
{ 
$found = true; 
// open to read and modify 
$file = "./user/".$_GET['own'].".txt"; 
$fh = fopen($file, 'r+'); 
$data = fread($fh, filesize($file)); 
$new_data = str_replace($id."\n", "", $data); 
fclose($fh); 
// Open to write 
$fh = fopen($file, 'r+'); 
fwrite($fh, $new_data); 
fclose($fh); 
$status = "has been successfully deleted."; 
} 
} 
// If the text was not found, show a message 
if(!$found) 
{ 
$status = "is not exist in your list."; 
} 
?> 

Я получил эту работу часов раньше. Я сделал некоторые изменения в моем скрипте и как-то, он больше не работал. Может ли кто-нибудь увидеть код и рассказать мне, что не так?

или может кто-нибудь дать более простой способ делать то, что я хочу? мой код испорчен ..

ответ

3

Я хочу, чтобы обнаружить, если слово в текстовом файле существует, а затем удалить его ..

<?php 
$search = $id; 
$filename="./user/".$_GET['own'].".txt"; 
$contents = file_get_contents($filename); 
$contents = str_replace($id."\n", "", $contents); 
file_put_contents($filename,$contents); 
?> 

То есть все, что есть в ней.

Edit:

Чтобы сделать это эквивалент к вашему решению, можно использовать

<?php 
$search = $id; 
$filename="./user/".$_GET['own'].".txt"; 
$contents = file_get_contents($filename); 
$contents = str_replace($id."\n", "", $contents,$count); 
if($count>0) 
{ 
    file_put_contents($filename,$contents); 
    echo "found and removed"; 
} 
else 
{ 
    echo "not found"; 
} 
?> 
+0

вот и все ???? -_- Как стыдно, когда мой код втрое длиннее вашего .. Кстати, я проверю его через минуту – G3M

+0

Да, это все, единственное, что здесь отсутствует, это условное 'echo' –

+0

работает как шарм !! спасибо. – G3M

Смежные вопросы