Trying to recode my php script into c to run on linux...



Hi guys,

My first post here, I already love this place , it's huge and hopefully I can get some help to do this project of mine.

Here's what I need to do.



I need to take my php script that I coded, and translate it into c from php.

What tools will I need to do this? I wrote and tested the script with just notepad, so I'm sure I'm going to need tools to build and test this script in c.

My platform I am coding in is windows xp professional 2. The platform(s) I would like it to run on are linux (1st importance) and windows xp would be nice if it was easy, most important is linux however (centos 4 with cpanel/whm but you probably didn't need that much info).

Here is the basic functions my script has...


Here is the script, i modified it a little bit here and there, changed some words and names.

I believe I fixed the error about it timing out, or at least I pray I did. It's been running for two hours and still seems to be loading which is good, I just had to have it display something every 10 seconds or the browser would eventually time out.

Any ideas on how to easily convert this to C or Perl (perferably c)?

I can give a few snippets (edited variable names of course)

class MYFUNCTION

{

var $PROXY_LIST=false;

var $CURRENT_PROXY=false;

var $useProxies=false;

var $proxyPath = 'proxies.txt';



var $max_out = 100000;

var $time_delay = 1;

var $extra_bar=0;//0= no limit



var $named_list=null;

var $stopat=null;



var $fileName ="whatisthefilename.txt";

var $fileMode ="w";



var $numRequests=0;



function GoForIt()

{

set_time_limit(0);//this may take awhile.

$totalsize=9;

$i=0;

$d=0;

while($i < $totalsize && $d <= $this->depth)

{

if($this->useProxies)

$this->GetNextProxy();

$this->ANOTHERFUNCTIONHERE($this->named_list[$i]);

$totalsize = count($this->named_list);

if($max_out >= $this->extra_bar)

break;

if($this->depth>0)

$d++;

$i++;



sleep($this->time_delay);

}

$this->SaveToFile();

}



/************************************************** ******************

* Get the next anonymous proxy from the proxies.txt file

* When the last proxy is reached it goes back to the first

* proxies should be just the proxy ip and port and a new line

************************************************** *******************/

function GetNextProxy()

{

// if the current_proxy is false, then load the proxy file

if(!$this->CURRENT_PROXY)

{

$handle = fopen($this->proxyPath, "rb");

if($handle == false)

{

echo "Please upload a proxy list. or untick the proxy list, moron!";

exit;

}

elseif ($handle == true)

{

$this->PROXY_LIST = fread($handle, filesize('proxies/proxies.txt'));

fclose($handle);

$this->PROXY_LIST = explode("\n", $this->PROXY_LIST);

$this->CURRENT_PROXY = current($this->PROXY_LIST);

}

}

else

{

//get the next proxy from the array

$this->CURRENT_PROXY = next($this->PROXY_LIST);

//if used all proxies then get the first proxy

if(!$this->CURRENT_PROXY)

$this->CURRENT_PROXY = reset($this->PROXY_LIST);

}

}

function BLAHBLAHBLAH($result)

{

if(is_array($result))

foreach($result as $value)

{

$value = strip_tags($value);

$value = trim($value);

if (!in_array($value,$this->named_list))

{

if($this->stopat!=null && $this->stopat($value))

$this->named_list[] = $value;

else

$this->named_list[] = $value;

}

}

}

7
and you execute the script by doing this:


set_time_limit(0);

ignore_user_abort(1);

require_once("./other.file.class.php");



/******************************/

/* CONFIG-BEGIN */

/******************************/

$list = file("list.txt");

$_GET["useVarONE"] = 1;



$sz = sizeof($list);

// START LOOP

for($l=0;$l<=$sz;$l++)

{

echo $list[$l];

$NameOfClass = new Class();

$CFG->Path = dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']);

$CFG->savefile = $CFG->Path."/dir/test_file_output.txt";

$NameOfClass->fileName = $CFG->savefile;

if(isset($_GET['useExample1']))

$NameOfClass->useExample1 =true;

if(isset($_GET['useProxies']))

{

$NameOfClass->useProxies =true;

$NameOfClass->proxyPath = $CFG->Path."/proxies/proxies.txt";

}

if(isset($_GET['badwords']))

if($_GET['badwords'] != "")

$NameOfClass->Badwords = explode("\n",$_GET['badwords']);



//$_GET["words"] = file_get_contents("list.txt");

$_GET["words"] = $list[$l];

if(!isset($_GET['words'])){ echo "Word file is not valid"; }

else{

//$NameOfClass->example_list = explode("\n", $_GET['words']);

$NameOfClass->example_list = $list[$l];

$NameOfClass->example_list = explode("\n", $_GET['words']);

$NameOfClass->example_list[0] = trim($NameOfClass->example_list[0]);

$NameOfClass->fileName = "kws/".$NameOfClass->example_list[0].".txt";

// $NameOfClass->fileName = str_replace(" ","",$NameOfClass->fileName);

$NameOfClass->GetClassExample();



}



}
Ok that's just the basics of it,the entire php script is like 4 times longer so I really cut this out just so it's like one example of each, so if I could find out how to do it for one of each example I gave, I'm sure I can code the entire rest of the script myself.

The REASON for recoding this into C instead of leaving it in PHP , is that this script is supposed to be running 24/7, non stop, and in php, even with the set_time_limit to unlimted time to run, APACHE crashes after running it for like an hour or two, because it's CONSTANTLY processing based on a VERY HUGE list.txt, and also from what it DOES with that list.txt. You could call it a content processor. If this was recoded into C, I believe it would be more stable and wouldn't crash as much, and also I could run it in the background so it wouldn't be in the way.

Who can assist me in what I am doing? I am quite knowledgeable coding in php and I know just a BIT of c++ from several years ago, I haven't touched it in a while, but hopefully I can redo this php script into c easily.

Thanks in advance!!!

BTW, I store all this in a FLAT file database, just simple txt files. Is that a good method? I think it is for the methods I'm using...