本文目录一览:
- 如何在php中执行java代码?
- 这个java代码用php怎么编写
- 这些java代码用php怎么实现
- [有没有根据PHP写的程序 写出JAVA代码的教程呢](#有没有根据PHP写的程序 写出JAVA代码的教程呢)
- 如何用PHP代码实现这个Java代码所实现的
- 这些java代码用php如何实现
如何在php中执行java代码?
windows下的安装
第一步:安装JDK,这是非常容易的,你只需一路回车的安装好。然后做好以下步骤。
在 Win9x 下加入 :PATH=%PATH%;C:\jdk1.2.2\bin
到AUTOEXEC.BAT文件中
在 NT /Win2000下加入 ;C:\jdk1.2.2\bin
到环境变量中。
这一步是非常重要的,这样PHP才能正确的找到需调用的JAVA类。
第二步:修改你的PHP.INI文件。
[java]
extension=php_java.dll
java.library.path=c:\web\php4\extensions\
java.class.path="c:\web\php4\extensions\jdk1.2.2\php_java.jar;c:\myclasses"
在PHP.INI中加入extension=php_java.dll
并在[java]中,设定好java.class.path
,让它指向php_java.jar
,如果你使用新的JAVA类,你也应该存入这个路径,在这篇例子中,我们使用c:\myclasses
这个目录。
第三步:测试环境,创建如下PHP文件:
<?php
$system = new Java("java.lang.System");
print "Java version=" . $system->getProperty("java.version") . "\n";
print "Java vendor=" . $system->getProperty("java.vendor") . "\n\n";
print "OS=" . $system->getProperty("os.name") . " " .
$system->getProperty("os.version") . " on " .
$system->getProperty("os.arch") . "\n";
$formatter = new Java("java.text.SimpleDateFormat", "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java("java.util.Date")) . "\n";
?>
这个java代码用php怎么编写
你这段代码是actionscript。代码功能是利用字节码将时间转换(可能是出于加密目的)
php中没有byteArray
,可以利用16进制表达式截取转换
<?php
$time = time();
echo $time, "\n";
echo transformInt($time);
function transformInt($arg1) {
// 将数字转换成16进制 time的16进制有 8位长度
$bint = dechex($arg1);
$rint = '';
$i = 0;
while ($i < 4) {
$part = hexdec(substr($bint, $i * 2, 2));
$newpart = ($part >> 4) ^ 240 | ($part & 15) + 1 << 4;
$newpart = $newpart % 255;
$rint = dechex($newpart) . $rint;
++$i;
}
return hexdec($rint);
}
?>
有一个问题就是as中int是32位,转换后如果溢出,会显示负数。php的整型则根据平台自动适应,64位系统中是int64,这个算法里不会溢出。
这些java代码用php怎么实现
<?php
echo base_convert(round(microtime(TRUE) * 1000), 10, 36)
. base_convert(round(1679616.0 * ((float) rand() / (float) getrandmax())), 10, 36);
?>
输出示例:jfhqplcp2shq
由于输出对应时间戳和随机数,所以一般不会有相同的。
题目也没有提供验证数据,所以就没有去测试一致性,只写了结果格式一致。
有没有根据PHP写的程序 写出JAVA代码的教程呢
没有的。 Java是完全的面向对象语言。 PHP是弱类型语言,既可以写面向对象,也可以写面向过程。而且语法也没有Java严谨。 Java比PHP的知识点多好几倍。如果PHP三个月可以入门,Java最少要半年时间。 所以不会有谁会做这样的教程的,做出来也会让人感觉很白痴。
如何用PHP代码实现这个Java代码所实现的
Java Aes类,用PHP实现方法:
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class AESSecurityUtil {
private static final String AES = "AES";
private static final String CHARSET_NAME = "utf-8";
private static SecretKeySpec getKey(String password) throws NoSuchAlgorithmException {
KeyGenerator kgen = KeyGenerator.getInstance(AES);
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
random.setSeed(password.getBytes());
kgen.init(128, random);
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, AES);
return key;
}
public static String encode(String str, String password) {
byte[] arr = encodeToArr(str, password);
return byteArrToString(arr);
}
private static byte[] encodeToArr(String str, String password) {
try {
Cipher cipher = Cipher.getInstance(AES);
byte[] byteContent = str.getBytes(CHARSET_NAME);
cipher.init(Cipher.ENCRYPT_MODE, getKey(password));
byte[] result = cipher.doFinal(byteContent);
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String decode(String hexStr, String password) {
byte[] arr = string2ByteArr(hexStr);
return decode(arr, password);
}
private static String decode(byte[] arr, String password) {
try {
Cipher cipher = Cipher.getInstance(AES);
cipher.init(Cipher.DECRYPT_MODE, getKey(password));
byte[] result = cipher.doFinal(arr);
return new String(result, CHARSET_NAME);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private static String byteArrToString(byte[] arr) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
sb.append((char) arr[i]);
}
return sb.toString();
}
}
这些java代码用php如何实现
这样就可以:
$a = tempnam('', '');
tempnam
的两个参数分别是文件夹和前缀,根据需要添加。