我想用php编写一个爬虫脚本,显示在线索引的页面是必要的.然而,php不会实时更新页面,有时它会一起写几个回声并等到完成加载,有时在页面中没有任何内容,直到完成加载.
这是一个关于我在说什么的例子:
<?php
echo '1<br>';
sleep(2);
echo '2<br>';
sleep(2);
echo '3<br>';
sleep(2);
echo '4<br>';
?>
Run Code Online (Sandbox Code Playgroud)
我尝试了wamp和lamp,结果是一样的.有什么方法可以实时显示回声吗?
注意:我发现了一个具有此功能的在线抓取工具.
Redshift提供了一组允许执行JSON操作的JSON函数,但是与普通表列相比,是否有人测试过JSON的性能?我想使用Redshift的主要原因是它的柱状性质,因为我想对存储在Redshift中的分析数据执行复杂的聚合.
根据Redshift文档中的JSON函数页面,似乎Redshift不会以JAR数据类型的列式格式存储数据.(链接)但是我知道一些基于Redshift的分析服务以JSON格式存储数据.有没有人在Redshift中对JSON格式进行基准测试?是否真的值得使用,甚至认为它失去了Redshift的主要好处?
我AES/CBC/PKCS5Padding使用Java javax.cryptoAPI 生成128位密钥.这是我使用的算法:
public static String encryptAES(String data, String secretKey) {
try {
byte[] secretKeys = Hashing.sha1().hashString(secretKey, Charsets.UTF_8)
.toString().substring(0, 16)
.getBytes(Charsets.UTF_8);
final SecretKey secret = new SecretKeySpec(secretKeys, "AES");
final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secret);
final AlgorithmParameters params = cipher.getParameters();
final byte[] iv = params.getParameterSpec(IvParameterSpec.class).getIV();
final byte[] cipherText = cipher.doFinal(data.getBytes(Charsets.UTF_8));
return DatatypeConverter.printHexBinary(iv) + DatatypeConverter.printHexBinary(cipherText);
} catch (Exception e) {
throw Throwables.propagate(e);
}
}
public static String decryptAES(String data, String secretKey) {
try {
byte[] secretKeys = Hashing.sha1().hashString(secretKey, …Run Code Online (Sandbox Code Playgroud) 我有一个名为 ChildPlugin 的子模块,我从主模块注入类,如下所示:
public class ChildPlugin {
private ExampleClass demo;
@Inject
public void setDemo(ExampleClass demo) {
this.demo = demo;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我不知道主模块是否绑定ExampleClass,如果不是 Guice 在创建注入器时抛出异常。我想要做的是让 Guice 通过null或者Optional.empty如果 ExampleClass 没有绑定。
我没有进入主模块,所以我不能改变粘结剂ExampleClass来OptionalBinder,我试图@Nullable和Optional<ExampleClass>在ChildPlugin.setDemo方法,但没有奏效。
java ×2
aes ×1
cryptography ×1
cryptojs ×1
guice ×1
javax.crypto ×1
json ×1
php ×1
web-crawler ×1