Page 1 of 1
asp convert to php
Posted: Thu Jun 23, 2005 3:19 am
by jackie111
Can anyone help me to convert the following ASP code to PHP code:
Code: Select all
Set f = File.OpenTextFile(Server.MapPath(f1.name) , 1)
C=f.readline
Name=Replace(Lcase(f1.name),"e;.jpg"e;,"e;"e;)
St=Replace((mid(c, Instr(C,"e;ST:"e;)+3,Instr(c,"e;C"e;)-25)),"e; "e;,"e;"e;)
CO=Replace((mid(c, Instr(C,"e;C"e;)+3,Instr(c,"e;+X:"e;)-36)),"e; "e;,"e;"e;)
X=Cint(Replace((mid(c, Instr(C,"e;+X:"e;)+3,Instr(c,"e;-X:"e;)-43)),"e; "e;,"e;"e;))+Cint(Replace((mid(c, Instr(C,"e;-X:"e;)+3,Instr(c,"e;+Y:"e;)-52)),"e; "e;,"e;"e;))
Y=Cint(Replace((mid(c, Instr(C,"e;+Y:"e;)+3,Instr(c,"e;-Y:"e;)-61)),"e; "e;,"e;"e;))+Cint(Replace((mid(c, Instr(C,"e;-Y:"e;)+3,Instr(c,"e;AX:"e;)-70)),"e; "e;,"e;"e;))
TIA
Jackie
Posted: Thu Jun 23, 2005 4:18 am
by Chris Corbyn
I don't know ASP but if you explain what it does (it looks like a load of seraching and replacing text file contents?) I might be able to churn some code out

Posted: Fri Jun 24, 2005 1:43 am
by jackie111
Thanks for your help. I need to get some information from a special file, i can open the file via notepad, and the top lines are like:
LA:pp09
ST: 27097
CO: 0
+X: 2594
-X: 431
+Y: 96
-Y: 2558
AX:+ 1027
AY:- 2232
I need to get the following info from the file:
LA, ST, CO, X=+X-(-X) Y=(+Y)-(-Y)
I am not familar with php, You could use php to open a text file, then get the value from there, For the correct value of position, please check my ASP code.
thanks
Jackie
d11wtq wrote:I don't know ASP but if you explain what it does (it looks like a load of seraching and replacing text file contents?) I might be able to churn some code out

Posted: Fri Jun 24, 2005 2:06 am
by harrisonad
Code: Select all
$handle = fopen("inputfile.txt", "r");
while (!feof($handle)) {
$str = fgets($handle, 4096);
$aray = explode(":",$str);
$neededStr = $aray[0];
echo $neededStr.'<br>';
}
fclose($handle);
But this part...
jackie111 wrote:
X=+X-(-X) Y=(+Y)-(-Y)
.. i don't understand. Is it a math function?
Posted: Fri Jun 24, 2005 2:38 am
by Chris Corbyn
Wasn't sure about the explode() idea since I dunno if the colon may occur anywhere else but in theory it would be more efficient if benchmarked...
The maths works too.. makes nastly looking regex though since there seems to be random whitespace between the pos/neg signs....
Code: Select all
$file = '/full/path/to/file.txt';
$string = file_get_contents($file);
$results = array();
//LA
preg_match('#^LA\:(?: )*(.*)#m', $string, $match);
$results['LA'] = trim($match[1]);
//ST
preg_match('#^ST\:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$results['ST'] = trim($match[1].$match[2]);
//CO
preg_match('#^LA\:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$results['CO'] = trim($match[1].$match[2]);
//X
preg_match('#^\+X:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$X0 = trim($match[1].$match[2]);
preg_match('#\-X:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$X1 = trim($match[1].$match[2]);
$results['X'] = $X0 - $X1;
//Y
preg_match('#^\+Y:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$Y0 = trim($match[1].$match[2]);
preg_match('#\-Y:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$Y1 = trim($match[1].$match[2]);
$results['Y'] = $Y0 - $Y1;
//Just to show the output <-- delete this
print_r($results);
If you need a easy to use function:
Code: Select all
function getData($file) {
$string = file_get_contents($file);
$results = array();
//LA
preg_match('#^LA\:(?: )*(.*)#m', $string, $match);
$results['LA'] = trim($match[1]);
//ST
preg_match('#^ST\:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$results['ST'] = trim($match[1].$match[2]);
//CO
preg_match('#^LA\:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$results['CO'] = trim($match[1].$match[2]);
//X
preg_match('#^\+X:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$X0 = trim($match[1].$match[2]);
preg_match('#\-X:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$X1 = trim($match[1].$match[2]);
$results['X'] = $X0 - $X1;
//Y
preg_match('#^\+Y:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$Y0 = trim($match[1].$match[2]);
preg_match('#\-Y:(?: )*([\-\+])?(?: )*(.*)#m', $string, $match);
$Y1 = trim($match[1].$match[2]);
$results['Y'] = $Y0 - $Y1;
return $results;
}
//Example
$data = getData('full/path/to/file.txt');
print_r($data); //Test only
Essentially... it opens the file and reads ALL the data. Runs some regex to get what it needs then does the calulation on the bits you need. It adds everything to an array so you can call it back easily.
Hope it helps.
Posted: Fri Jun 24, 2005 2:48 am
by jackie111
thanks so much it do not works well. here is your code:
Code: Select all
function getData($file) {
$string = file_get_contents($file);
$results = array();
//LA preg_match('#^LA\:(?: )*(.*)#m', $string, $match);
$resultsї'LA'] = trim($matchї1]);
//ST preg_match('#^ST\:(?: )*(ї\-\+])?(?: )*(.*)#m', $string, $match);
$resultsї'ST'] = trim($matchї1].$matchї2]);
//CO preg_match('#^LA\:(?: )*(ї\-\+])?(?: )*(.*)#m', $string, $match);
$resultsї'CO'] = trim($matchї1].$matchї2]);
//X preg_match('#^\+X:(?: )*(ї\-\+])?(?: )*(.*)#m', $string, $match);
$X0 = trim($matchї1].$matchї2]);
preg_match('#\-X:(?: )*(ї\-\+])?(?: )*(.*)#i', $string, $match);
$X1 = trim($matchї1].$matchї2]);
$resultsї'X'] = $X0 - $X1;
//Y preg_match('#^\+Y:(?: )*(ї\-\+])?(?: )*(.*)#m', $string, $match);
$Y0 = trim($matchї1].$matchї2]);
preg_match('#\-Y:(?: )*(ї\-\+])?(?: )*(.*)#i', $string, $match);
$Y1 = trim($matchї1].$matchї2]);
$resultsї'Y'] = $Y0 - $Y1;
return $results;}
//Example
$data = getData('2/freebie.dst');
print_r($data); //Test only
error below:
Notice: Undefined variable: match in E:\design\test.php on line 6
Notice: Undefined variable: match in E:\design\test.php on line 8
Notice: Undefined variable: match in E:\design\test.php on line 8
Notice: Undefined variable: match in E:\design\test.php on line 10
Notice: Undefined variable: match in E:\design\test.php on line 10
Notice: Undefined variable: match in E:\design\test.php on line 12
Notice: Undefined variable: match in E:\design\test.php on line 12
Posted: Fri Jun 24, 2005 2:56 am
by Chris Corbyn
You haven't copied the code correctly...
Sorry, it's easier if you use Firefox to copy & paste since the
Code: Select all
tags are buggy.
Another way is to click "Quote" on my post and copy the code form there... it does work
Posted: Fri Jun 24, 2005 4:49 am
by jackie111
I am use the correct code, but had made a mistake while copying it to here.
not the correct code, i will find another way to do that.
thanks anyway
jackie
Posted: Fri Jun 24, 2005 5:56 am
by Chris Corbyn
jackie111 wrote:I am use the correct code, but had made a mistake while copying it to here.
not the correct code, i will find another way to do that.
thanks anyway
jackie
I have tested it... I get the identical errors you have there when I use *your* code.
But when using *my* code I get a clean output.
All the preg_...()'s are commented out in yours - hence the errors regarding undefined variable since no $match array is being created - the errors fit perfectly with what you posted.
I can't give you another solution since the code I posted does what you asked for sorry. Seriously, copy the code again or break it down by using the PHP manual and see how it works rather than just attempting to copy and paste incorrectly
