Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中WSDL的强制重缓存_Php_Web Services_Caching_Wsdl - Fatal编程技术网

php中WSDL的强制重缓存

php中WSDL的强制重缓存,php,web-services,caching,wsdl,Php,Web Services,Caching,Wsdl,我知道如何在PHP中禁用,但强制重新缓存WSDL呢 这就是我所尝试的:我在运行代码时将缓存设置为disabled,新方法显示为spected。然后我激活了缓存,但出于某种原因,我的旧的不工作的wsdl再次出现。那么:如何强制我的新WSDL覆盖我的旧缓存呢?我会试试看 $limit = ini_get('soap.wsdl_cache_limit'); ini_set('soap.wsdl_cache_limit', 0); ini_set('soap.wsdl_cache_limit', $li

我知道如何在PHP中禁用,但强制重新缓存WSDL呢

这就是我所尝试的:我在运行代码时将缓存设置为disabled,新方法显示为spected。然后我激活了缓存,但出于某种原因,我的旧的不工作的wsdl再次出现。那么:如何强制我的新WSDL覆盖我的旧缓存呢?

我会试试看

$limit = ini_get('soap.wsdl_cache_limit');
ini_set('soap.wsdl_cache_limit', 0);
ini_set('soap.wsdl_cache_limit', $limit);

或者可能将
soap.wsdl\u cache\u ttl
设置为0并返回从缓存中删除旧的wsdl。

我猜当禁用缓存时,它也将停止写入缓存。因此,当您重新启用缓存时,旧的缓存副本仍然存在并且有效。您可以尝试(启用缓存)


我将生存时间设置为1秒,因为我认为如果在其中设置0,将完全禁用缓存,但不会删除条目。您可能只想在删除缓存副本时插入该行。

在my php.ini中,有一个条目如下所示:

soap.wsdl_cache_dir="/tmp"
在/tmp中,我发现了一组名为wsdl-[一些十六进制字符串]的文件

我可以使用以下命令刷新缓存的wsdl文件:

rm /tmp/wsdl-*

这不是个好办法。我在服务器上没有访问权限。。。。即使我这样做了。。有许多soap服务正在运行。不可能找出哪个缓存文件对应于我现在正在工作的ws,这不是一个好的解决方案。我在服务器上没有访问权限。。。。即使我这样做了。。有许多soap服务正在运行。要找出哪个缓存文件对应于我现在正在工作的ws是不可能的这是我所看到的唯一有效的答案。谢谢你,你让我高兴极了!
rm /tmp/wsdl-*