How to use regexp to remove line from text file that not containing certain symbol such as equal sign =?
I tried the code something like this: Input File --------- abc=123 def=345 php is good i like it parm=567 hello2 Php Code: <?php $myFile = "report2a.txt"; $fh = fopen($myFile, 'r'); $out=""; while ($data_in = fgets($fh)){ $data_in=preg_replace('~(^|[\r\n]+)(?!.*=).*([\r\n]+|$)~', "\n", trim($data_in)); $out.=$data_in; } file_put_contents("report2b.txt",$out); fclose($fh); echo "done"; ?> Output generated report2b.txt: abc=123def=345 parm=567 Look likes carriage return has been truncated or trimmed. Could you fix it to become proper output: abc=123 def=345 parm=567 Thanks. for your help.
$myFile = "report2a.txt"; $lines = file($myFile); // Remove lines that don't have an equal sign $lines = array_filter($lines, 'is_valid_line'); // Save file_put_contents($myFile, implode("\n", $lines)); echo "Done"; function is_valid_line(&$line) { return (strpos($line = trim($line), '=') !== false); } PHP: