Jump to content

Read data from text file


KingOfHeart

Recommended Posts

I need to search through a text file and output certain text.

My current script doesn't work well at all.

 

<?
$file = 'flist.txt';
$handle = @fopen($file, "r");
$names = array();
$func = array();
$desc = array();
$nme;
$fnc;
$dsc;
$s = -1;
$e = -1;
$n = 0;
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {

	if($nme == 0)
	{
		if(strpos($buffer,"<a name") !== false)
		{
			$nme = 1;
			$s = strpos($buffer,"<a name");
		}
	}
	else if($nme == 1)
	{
		if(strpos($buffer,"</span>") !== false)
		{
			$nme = 2;
			$e = strpos($buffer,"</span>");
			$num = $e - $s;
			$names[$n] = strip_tags(substr($buffer,$s,$num));
		}
	}
	else if($nme == 2)
	{
		if($fnc == 0)
		{
			if(strpos($buffer,"<table style") !== false)
			{
				$fnc = 1;
				$s = strpos($buffer,"<table style");
			}
		}
		else if($fnc == 1)
		{
			if(strpos($buffer,"</td>") !== false)
			{
				$fnc = 2;
				$e = strpos($buffer,"</td>");
				$num = $e - $s;
				$func[$n] = strip_tags(substr($buffer,$s,$num));
			}
		}
		else if($fnc == 2)
		{
			if($dsc == 0)
			{
				if(strpos($buffer,"<p>") !== false)
				{
					$dsc = 1;
					$s = strpos($buffer,"<p>");
				}
			}
			else if($dsc == 1)
			{
				if(strpos($buffer,"</p>") !== false)
				{
					$fnc = 0;
					$nme = 0;
					$dsc = 0;
					$e = strpos($buffer,"</p>");
					$num = $e - $s;
					$desc[$n] = strip_tags(substr($buffer,$s,$num));
				}
			}
		}		
	}
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
$n = 0;
while($n < 100)
{
	echo $names[$n] . "<br>";
	echo $func[$n] . "<br>";
	echo $desc[$n] . "<p>";
	$n ++;
}
}
?>

4096 gets the data for each line, right? Well some of my data uses two lines.

 

After all the searching is done I need it to output $names, $func, and $desc in plain text.

Link to comment
https://forums.phpfreaks.com/topic/233555-read-data-from-text-file/
Share on other sites

:(

I hate these time limits where I can't modify my post.

 

I wanted to explain it more.

I used to have a wiki file with the name, function, and description for each coding command. I now need to transfer that data to a mysql field.

So I need to search through this data, ignore the HTML, and just get the data from the name, function, and description.

After I receive that data, instead of echoing it I'll just insert it into a mysql table(already know how to do this)

 

 

The name of the function starts after <a name=. The function itself starts after <table style. Lastly the description starts after <p>. That's why I used strpos but probably doesn't work in this case.

 

 

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.