我被问及/被告知将foxpro函数转换为PHP,但我对foxpro一无所知。
PARAMETERS cCkey
LOCAL cKey
cKey = SUBSTR(SYS(2015),2)+PADL(LTRIM(STR(INT(IIF(INT(RAND()*1000000000) = 851390329,RAND(-1),RAND())*1000000),6)),6,"0")
RETURN cKey
以上是他们想要在用PHP构建的系统中使用的功能,以便与foxpro数据库集成。
PHP中有一些熟悉的功能,但其他功能如“SYS”和“IIF”则不然,而且我知道有人在这里可以看一眼,并确切知道它是什么正在做。
介意帮助我?提前谢谢。
答案 0 :(得分:1)
Sys(2015)是一个方便的VFP函数,它返回该VFP会话唯一的值。你可以阅读它here
Iif 是内联if-else-endif语句..就像Excel一样
更新了
SYS(2015)用PHP?我不知道..但是如果我们在PHP中讨论随机字符串,你可以使用这个
function rand_string( $length ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen( $chars );
for( $i = 0; $i < $length; $i++ ) {
$str .= $chars[ rand( 0, $size - 1 ) ];
}
return $str;
}
得到了基本的想法
关于另一部分可能是这样的:
$randomresult = 0
$srandom = ""
If (INT(RAND()*1000000000) = 851390329)
{
$randomresult = int(rand(-1)) * 1000000
}
else
{
$randomresult = int(rand()) * 1000000
}
$srandom=str_pad(ltrim(strval($randomresult),"0")),6,"0",STR_PAD_LEFT)
所以,我们可以在PHP中制作这样的foxpro代码:
$cKey = rand_string(10) . str_pad(ltrim(strval($randomresult),"0")),6,"0",STR_PAD_LEFT)
至少你可以这个想法......
答案 1 :(得分:0)
SYS(2015)
返回一个唯一的10个字符的过程名称,以下划线开头,后跟字母和数字的组合。
http://msdn.microsoft.com/en-us/library/684by7c1(v=vs.80).aspx
IIF
根据逻辑表达式的值返回两个值中的一个。
http://msdn.microsoft.com/en-us/library/7ttt15k6(v=vs.80).aspx
有了这些信息,我认为你至少可以尝试创建一个PHP函数,然后展示一些PHP并在需要时寻求帮助。