Jump to content

Import data from remote file


strategos

Recommended Posts

Hello, this script originally works by reading a physical copy of 'bans.txt' located in the same directory. How could I get it to read the remote bans.txt located here and parse info from it like the on-site copy?

 

the remote file: http://108.163.211.219/bans.txt

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Data Tables and Cascading Style Sheets Gallery</title>
<style>/*
Tema: Soft Table - A Simple table style with the use of the soft brown color
Author: Newton de G?es Horta
Site: --
Country Origin: Brazil
*/

table {
font-size:0.9em;
font-family: Arial, Helvetica, verdana sans-serif;
background-color:#fff;
border-collapse: collapse;
width: 100%;
}
caption {
font-size: 25px;
color: #1ba6b2;
font-weight: bold;
text-align: left;
background: url(http://www.nghorta.com/csstg/header_bg.jpg) no-repeat top left;
padding: 10px;
margin-bottom: 2px;
}
thead th {
border-right: 1px solid #fff;
color:#fff;
text-align:center;
padding:2px;
text-transform:uppercase;
height:25px;
background-color: #a3c159;
font-weight: normal;
}
tfoot {
color:#1ba6b2;
padding:2px;
text-transform:uppercase;
font-size:1.2em; 
font-weigth: bold;
margin-top:6px;
border-top: 6px solid #e9f7f6;
}
tbody tr {
background-color:#fff;
border-bottom: 1px solid #f0f0f0;
}
tbody td {
color:#414141;
padding:5px;
text-align:left;
}
tbody th {
text-align:left;
padding:2px;
}
tbody td a, tbody th a {
color:#6C8C37;
text-decoration:none;
font-weight:normal; 
display:block;
background: transparent url(http://www.nghorta.com/csstg/links_yellow.gif) no-repeat 0% 50%;
padding-left:15px;
}
tbody td a:hover, tbody th a:hover {
color:#009193;
text-decoration:none;
}
/* tr:nth-child(even) {
    background-color: grey;
} */
</style></head>
<body>

<table summary="Submitted table designs">
<thead><tr>
<th style="font-size:12px" scope="col"><center>Nickname</center></th>
<th style="font-size:12px" scope="col"><center>Admin</center></th>
<th style="font-size:12px" scope="col"><center>Banned</center></th>
<th style="font-size:12px" scope="col"><center>Reason</center></th>
<th style="font-size:12px" scope="col"><center>SteamID</center></th>
<th style="font-size:12px" scope="col"><center>Length</center></th>
<th style="font-size:12px" scope="col"><center>Status</center></th>
</tr></thead>


<tbody>

<!-- <tr><th scope="row" id="r100"><a href="100.php">rows table template</a></th>
<td><a href="http://www.adobati.it">Omar '0m4r' Adobati</a></td><td>Italy</td>
<td>Simple, clean and a quite classic table template </td>
<td><a href="http://www.adobati.it/labs/CSSTable/0m4r.table.css" title="Download the rows table template CSS file">Download</a></td>
<td>test</td>
<td>test2</td>
</tr> -->




<?php

// Credits to justin as he was able to understand my messy PHP code and do this much better code for me.

function buildBanList($arr)
{

$filename = "bans.txt";

$bans = array();

$tmp_array = array();



// Build Ban Array
if (file_exists($filename)) 
{
	foreach( $arr as $line )
	{



		if( substr(trim($line), 0, 7) == '"STEAM_' )
		{

			$tmp_array["user_steamid"] = str_replace('"', '', trim($line));

		}



		if( substr(trim($line), 0, 6) == '"time"' )
		{

			$tmp = explode('	', trim($line));

			$tmp_array["user_bantime"] = str_replace('"', '', $tmp[1]);

		}



		if( substr(trim($line), 0, 15) == '"modified_time"' )
		{

			$tmp = explode('	', trim($line));

			$tmp_array["user_modified"] = str_replace('"', '', $tmp[1]);

		}



		if( substr(trim($line), 0, 7) == '"unban"' )
		{

			$tmp = explode('	', trim($line));

			$tmp_array["user_unban"] = str_replace('"', '', $tmp[1]);

		}



		if( substr(trim($line), 0, 7) == '"admin"' )
		{

			$tmp = explode('"	"', trim($line));

			$tmp2 = explode('(', $tmp[1]);

			$tmp_array["admin_name"] = str_replace('"', '', $tmp2[0]);

		}



		if( substr(trim($line), 0, 6) == '"name"' )
		{

			$tmp = explode('"	"', trim($line));

			$tmp_array["user_name"] = str_replace('"', '', $tmp[1]);

		}



		if( substr(trim($line), 0,  == '"reason"' )
		{

			$tmp = explode('"	"', trim($line));

			$tmp_array["user_reason"] = str_replace('"', '', $tmp[1]);

		}



		// Save ban record to main array once detected end.

		if( substr(trim($line), 0, 1) == '}' )
		{

			// If console ban then set required fields.

			if( $tmp_array["admin_name"] == "")
				$tmp_array["admin_name"] = "Console";

			array_push($bans, $tmp_array);
			$tmp_array = array();

		}

	}
}



//Sort Array by Ban Date

$tmp = array(); 

foreach($bans as &$ma) 

    $tmp[] = &$ma["user_bantime"];

array_multisort($tmp, SORT_DESC, $bans); 



return $bans;



}



//Begin Presentation



$file = file("./bans.txt");

date_default_timezone_set("Europe/London");



$bans = buildBanList($file);



foreach ($bans as $ban)

{

echo '<tr>
';

// Output
if ($ban["user_name"] != '')
	echo '<td style="text-align:center; font-size: 12px">'.$ban["user_name"].'</td><td style="text-align:center; font-size: 12px" class="admin">';
else
	echo '<td style="text-align:center; font-size: 12px"><span style="color:#FF0000">N/A</span></td><td style="text-align:center; font-size: 12px" class="admin">';


echo $ban["admin_name"].'</td><td style="text-align:center; font-size: 12px">'.date('H:i - d/m/y',$ban["user_bantime"]).'</td>';

/* Unban date.
if ($ban["user_unban"] != "0")
{

	echo date('H:i - d/m/y',$ban["user_unban"]);

} else {

	echo "Never";

}*/


 echo '<td style="text-align:left; font-size: 11px">'.$ban["user_reason"].'</td>';


// Status
$today = strtotime("now");
echo '</td><td style="text-align:center; font-size: 12px">'.$ban["user_steamid"].'  </td>';

// Ban Length
$date1 = date('y-m-d H:i:s',$ban["user_bantime"]);
$date2 = date('y-m-d H:i:s',$ban["user_unban"]);
$to_time=strtotime($date1);
$from_time=strtotime($date2);

$ban_length = round(abs($to_time - $from_time) / 60,0);
if ($ban["user_unban"] != "0")
{	
	// Days
	if ($ban_length >= 1440)
	{
		$ban_length = round(abs($to_time - $from_time) / 24 / 60 / 60,0);
		// Years couldn't be arsed to think of another way to do it.
		if ( $ban_length >= 365 )
		{
			$ban_length = round(abs($to_time - $from_time) / 360 / 24 / 60 / 60,0);
			if ($bans_length > 1)
				echo "<td style=\"text-align:center; font-size: 12px\">".$ban_length." Years </td>";
			else
				echo "<td style=\"text-align:center; font-size: 12px\">".$ban_length." Year </td>";
		}
		else
			echo "<td style=\"text-align:center; font-size: 12px\">".$ban_length." Days </td>";
	}
	// Hours
	else if ($bans_length >= 60)
	{
		$ban_length = round(abs($to_time - $from_time) / 60 / 60,0);
		if ($bans_length > 1)
			echo "<td style=\"text-align:center; font-size: 12px\">".$ban_length."	Hours </td>";
		else 
			echo "<td style=\"text-align:center; font-size: 12px\">".$ban_length."	Hour </td>";
	}
	else
		echo "<td style=\"text-align:center; font-size: 12px\">".$ban_length." Minutes </td>";
}

else {
	echo "<td style=\"text-align:center; font-size: 12px\">Permanent</td>";
}

if ($ban["user_unban"] == "0")
	echo '<td style="text-align:center; font-size: 12px"><span style="color:#FF0000">Banned</span></td>';

else if ( $today  > $ban["user_unban"] )
	echo '<td style="text-align:center; font-size: 12px"><span style="color:#008000">Expired</span></td>';

else
	echo '<td style="text-align:center; font-size: 12px"><span style="color:#FF0000">Banned</span></td>';

echo '</tr>';


}

?></table>

<center><p>Web-based ULX bans by Russy.</p></center>

</div>



</body>

</html>

 

I've tried experimenting w/ stuff like

 

$filename = "http://108.163.211.219/bans.txt";
$contents = file_get_contents($filename);

 

but it doesn't seem to want to work.

Link to comment
Share on other sites

Hello

 

$filename = "http://108.163.211.219/bans.txt";
$contents = file_get_contents($filename);
echo $contents;

I just ran that code on one of my servers, and it outputs the entire file!

 

Can you try to run that above code and see if it works?

 

If not, you may need to enable allow_url_fopen in your php.ini file!

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.