我需要在Apache Tomcat中获取已部署的Web应用程序列表.此外,对于每个webapp,我需要获取初始化的servlet和JSP列表.有什么想法可以做到这一点?
我发现该目录\tomcat\work\Catalina\localhost\
包含每个webapp的子目录.是否有任何其他部署的Web应用程序不存在?
我用php-fpm和cron任务运行php在nginx后面到php二进制文件(/ usr/bin/php).
我发现了一个不一致 - 当我通过php二进制文件和通过fpm运行它时,相同的脚本会输出不同的结果.
注意这仅适用于PHP7.在另一台服务器上,我用5.6测试了它,结果是一样的.
这是我发现的.以下脚本:
<?php
class Test {
public function test(){
$arr = (object) [
'children' => []
];
$arr->children[] = 1;
return $arr;
}
}
$o = new Test();
$o->test();
print_r( $o->test() );
Run Code Online (Sandbox Code Playgroud)
保存到test.php
.当我通过浏览器(php-fpm)运行它时,会产生:
stdClass Object
(
[children] => Array
(
[0] => 1
)
)
Run Code Online (Sandbox Code Playgroud)
但是当我从CLI执行它时,结果是不同的:
[root@server1 web]# php -f test.php
stdClass Object
(
[children] => Array
(
[0] => 1
[1] => 1
)
)
Run Code Online (Sandbox Code Playgroud)
没有(对象)强制转换就不会发生这种情况.另外,如果我要实例$arr
与new …
我在PHP中有一个SOAP客户端,它调用WSDL服务.其中一个函数返回base64binary数据.我一直试图解码它没有任何运气.
base64_decode($ encoded_base64data)将无效.我尝试使用带有各种参数的base_convert()和mv_convert_encoding(),但无法获得正确的结果.
编码结果数据以:
??`I?%&/m?{J?J??t??`$?@???????iG#)?*??eVe]f@????{????{????;?N'????\fdl??J??!????~|?"
Run Code Online (Sandbox Code Playgroud)
(数据更长,这只是字符串的一小部分)
知道如何做到这一点?
谢谢
编辑
我使用新的__doRequest()方法扩展了SoapClient,以检查接收到的数据是否是正确的base64字符串.我得到了一个合适的base64编码字符串,上面显示的结果是解码后的响应.
无论如何,字符串由SoapClient自动从base64解码为二进制(如@hakre建议的那样),所以我只需要处理二进制响应.
现在我需要的是将二进制字符串解码成看似可读的格式.最终的回复应该包含格鲁吉亚的输出,所以我试图找出原始的编码(但这是一个不同的问题).
我有一个旧系统和一个正在开发的新系统:
在旧系统中,我使用 crontab 和 swiftmailer 发送新闻通讯。我编写了一个 PHP 脚本,它从数据库中读取邮件列表,并使用 swiftmailer+smtp 将电子邮件发送到整个列表,每组电子邮件之间有延迟,以确保我不会使服务器超载(swift mailer 在 Swift_Plugins_AntiFloodPlugin 下有此脚本) )。
我还编写了另一个脚本,该脚本将扫描我发送的地址以查找传入电子邮件,查找失败通知等,并匹配地址以清除数据库中不活动的电子邮件(即,如果您将电子邮件发送到不活动的地址)不存在,您收到一封带有错误消息的邮件,我从内容中提取了地址并将其从数据库中删除)。
这种方法每天处理超过 40K 封电子邮件。就像魅力一样。
在我正在编写的新系统中,我正在使用代码点火器。code igniter 的内置邮件功能似乎工作正常,只缺少一件事:是否可以在发送之间添加延迟?
我知道将 swiftMailer 库添加到我的 CI 项目中很简单,但在我这样做之前,可以使用 CI 邮件函数来完成此操作吗?独自的?在这种情况下添加 swift mailer 还有其他优点吗?
我知道很多人会建议使用为批量电子邮件构建的东西,但 PHP CLI 就像这种情况下的任何其他编程语言一样(我知道 mailman、majordomo 和 mailchip 等服务。我可以在 php 中使用多线程处理sysdaemons 和 mod_fork 等需要时,但这与问题无关)。
编辑:
解决了
尽管我已经添加了 swift 邮件程序(这花了几分钟), @JaredFarish 建议的Sparks似乎是解决方案,因为它是为 CI 设计的。
我一直在浏览文档/谷歌,但没有找到任何解决方案.
有没有办法使用没有本机mysql的doctrine2(DQL)执行或模仿GROUP_CONCAT?
例如.:
SELECT u.id, u.name, [GROUP_CONCAT(...)] AS user_messages
FROM models\Users u
LEFT JOIN models\Messages m
GROUP BY u.id
Run Code Online (Sandbox Code Playgroud)
要得到
GROUP_CONCAT(m.id,'|',m.title SEPARATOR ':')
Run Code Online (Sandbox Code Playgroud)
现在我正在使用createNativeQuery()来运行它,但我正在寻找一个doctrine2解决方案.
提前致谢
我正在为文本输入使用bootstrap的快速输入功能,该输入还具有一个弹出流行结果弹出框的按钮。
我想要预先输入功能,只是结果列表将显示在不同的div中(在弹出框内而不是在文本输入下)。
有没有办法为预搜索结果设置“容器”?(例如,弹出式窗口小部件包含“容器”选项)
像这样:
Text Field Button popover
________________________________________________________
| Search... | B | Typeahead1 Popular Searches: |
|--------------|---| Typeahead2 Src1 |
| Typeahead3 Src2 |
| .... ... |
|___________________________________|
Run Code Online (Sandbox Code Playgroud)
(本来可以更快地在Photoshop中绘制,但是……)
有什么好的解决方案的想法吗?我考虑了几种方法:修改/扩展typeahead插件或使用隐藏的文本输入。我可以代替jquery的自动完成功能。还有其他(更好的)建议吗?
注意:我正在使用jquery + angularjs + bootstrap
我正在编写一个需要在PHP中执行并发任务的脚本.
我跑了一点测试,遇到了奇怪的结果.我正在使用pcntl_fork生成一个孩子.父进程只会等待孩子完成.
我正在生成5个孩子,每个孩子都运行一个函数,生成一个随机数(秒)并且睡了那么长时间.出于某种原因 - 所有孩子都生成相同的数字.
这是一个代码示例:
private $_child_count = 0;
private function _fork_and_exec($func)
{
$cid = ++$this->_child_count;
$pid = pcntl_fork();
if ($pid){ // parent
return $pid;
} else { // child
$func($cid);
//pcntl_waitpid(-1, $status);
exit;
}
}
public function parallel_test()
{
$func = function($id){
echo 'child ' . $id . ' starts'."\n";
$wait_time = mt_rand(1,4);
echo 'sleeping for '.$wait_time."\n";
sleep($wait_time);
echo 'child ' . $id . ' ends'."\n";
};
$children = [];
for ($i=0; $i<5; $i++){
$children[] = $this->_fork_and_exec($func) ."\n"; …
Run Code Online (Sandbox Code Playgroud) php ×5
angularjs ×1
base64 ×1
codeigniter ×1
doctrine-orm ×1
encoding ×1
fork ×1
group-concat ×1
java ×1
javascript ×1
jquery ×1
mysql ×1
php-7 ×1
random ×1
soap ×1
swiftmailer ×1
tomcat ×1
wsdl ×1