Jump to content

Empty not empty?


smordue

Recommended Posts

I am using the following code, if there is data in the line it works fine, if there is no data in the line it still prints <li></li><li>|</li>, Could this have to do with the \n in the filewrite?

 

		<?
	$file = file('basedata.txt');
	if(!empty($lines[3]))
	{
	   echo "<li>" . $lines[3] . "</li>" ;
	   echo "<li>|</li>";
	}
	?> 

 

basedata.txt:

 

A Company Name

We are the best

123 Pine Street

 

Tampa

FL

33509

 

Link to comment
https://forums.phpfreaks.com/topic/185358-empty-not-empty/
Share on other sites

Yes that is due to the newline, I would suggest the following

 

     

<?php
      $lines = file('basedata.txt');
      $lines[3] = preg_replace("#[\r\n]+$#", '', $lines[3]);
      if(!empty($lines[3]))
      {
         echo "<li>" . $lines[3] . "</li>" ;
         echo "<li>|</li>";
      }
      ?>

Link to comment
https://forums.phpfreaks.com/topic/185358-empty-not-empty/#findComment-978529
Share on other sites

You can pass a few flags to the file function and one of those will be particularly useful here.

 

$lines = file("basedata.txt", FILE_IGNORE_NEW_LINES);

if ( ! empty($lines[3]))
{
echo "<li>$lines[3]</li><li>|</li>";
}

 

Bear in mind that empty will return true for more than just a zero-length string (e.g. "0").

Link to comment
https://forums.phpfreaks.com/topic/185358-empty-not-empty/#findComment-978735
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.