草庐IT

php - PHP 适合非常大的项目吗?它可以是交易安全的吗?

这个问题可能看起来很奇怪。但是我以前每次做PHP项目的时候,都会遇到这样的糟糕经历:脚本在10秒后取消运行。这会导致非常糟糕的数据库不一致(删除循环的坏例子:用户将要删除相册。相册对象从数据库中删除,然后在删除照片的一半过程中,脚本就在原处被杀死,并且剩下10.000张照片没有引用)。它不是事务安全的。我从来没有找到一种方法来安全地做某事,以确保它完成。如果脚本被杀死,它就会被杀死。就在一个循环的中间。它刚刚被杀死。这在使用java的tomcat上从未发生过。Java跑啊跑啊跑啊,要是花很长时间。很多时事通讯脚本试图通过将工作分成很多包来解决这个问题,即一次发送100个,然后重新加载页

php裁剪非常大的图像

这个问题不是关于裁剪图像的代码。我知道它是如何工作的。这只是一个关于使用PHP图片库(GD或ImageMagick?)处理非常大的图片的问题。例如我拿了一个非常大的文件(5000x35000像素)8位颜色3channel将其加载到内存中所需的内存是aprx。50个月!现在,我想做这个Action(只是为了举例):我想获取右下角的区域,大小为(600x600)像素。在这个图像部分,我想添加一个图形标签(不用担心关于这个我知道)之后,我想把这部分写在原始文件。我认为,工作流程必须是这样的:从大图读取原始字节(仅用于获取de部分文件)处理零件文件写下大图中的部分。所有内存占用都很小。你能帮我

php - 为什么使用 php 从一个非常大的 csv 文件中只读取 1000 条记录?

我刚开始学习使用PHP,因为工作中出现了一个要求,我想弄清楚为什么在我的CSV文件中的124938条记录中只有1011条记录被读取。这是我正在使用的非常基本的代码。\n";$fp=fopen('STDPRICE_FULL.csv','r')ordie("can'topenfile");while($csv_line=fgetcsv($fp,1024)){print'';for($i=0,$j=count($csv_line);$i'.$csv_line[$i].'';}print"\n";}print'\n';fclose($fp)ordie("can'tclosefile");?>当

php - CodeIgniter 项目的第一个 HTTP 请求延迟非常高

我和一个friend刚刚开始从事一个其他人几年前就停止开发的项目,而我们正在努力恢复它。我们已经解决了大部分与设置相关的问题,但有一个我们无法解决的问题非常烦人。在我们的本地主机中,所有页面都需要大量时间来加载/刷新。我不是指Assets、脚本或任何东西,问题是第一个请求完成之前的延迟。大多数情况下需要15到30秒,这是NotAcceptable,有时甚至会长达1或2分钟。例如,这是Chrome开发工具中“网络”选项卡的屏幕截图。第一行是View,其他是Assets。我们在谷歌上搜索了几个小时,尝试了一些不同的方法,但都没有奏效。一些解决方案,如thisone指向一些Apache的ht

php - 下载 Laravel 时 Composer 非常慢

你能帮帮我吗?我想通过composercreate-projectlaravel/laravel将Laravel安装到cms目录中,但Composer下载它的速度非常非常慢。你能帮我看看如何提升它吗?这是我的终端:saidalo@Saidalo-Yodgoroff:/var/www/html$composercreate-projectlaravel/laravelcms"5.1.*"Installinglaravel/laravel(v5.1.33)-Installinglaravel/laravel(v5.1.33)Downloading:100%Createdprojectinc

php - Laravel 中的简单查询速度很慢,但在数据库控制台中却非常快

我有一个非常奇怪的问题,我无法理解。我在我的后端应用程序中使用Laravel,我在其中运行一个非常简单的查询表,该表有30k条记录,所有记录都有适当的索引。这是查询:DB::select('select*fromOrderswhereClientId=?',[$id])在Laravel应用程序中,这个查询运行了1.2秒(如果我使用Eloquent模型也是一样。):"query"=>"select*fromOrderswhereClientId=?""bindings"=>array:1[▼0=>"44087"]"time"=>1015.2问题是,如果我在数据库控制台或PHPMyAdmi

PHP,在不将它们加载到 RAM 的情况下处理非常大的图像文件

我已经搜索了一段时间,但没有找到我想要的,所以这是我的问题:使用PHP,我想创建一个非常大的图像文件,比方说20000gigapixels,然后我想在这个大图像的特定位置添加一个小图像。我的电脑没有足够的RAM来加载整个图像并以这种方式操作像素,所以我想我需要访问硬盘上的图像数据并以某种方式操作它们,所以有人知道该怎么做吗?谢谢你帮我:) 最佳答案 ImageMagick支持对非常大的文件进行操作。我在PHP/ImageMagickAPI中看不到支持,但您可以调用(exec)命令行程序并使用其中一个磁盘缓存或流式选项。这里有一些处理

php - 在 PHP 中读取非常大(超过 100MB)的 Excel 文件

我正在尝试使用PHPExcel读取一个大于100MB的Excel文件,但它在加载文件时崩溃了。我不需要任何样式。我尝试使用:$objReader->setReadDataOnly(true);但它仍然崩溃。有什么有效的方法可以在PHP中读取这种大小的Excel文件吗? 最佳答案 尝试Spout:https://github.com/box/spout.这是一个为解决您的问题(读/写大文件)而创建的PHP库。这就是它起作用的原因:其他图书馆在内存中保留电子表格的表示形式,这使得它们容易出现内存不足错误。使用一些缓存策略将有助于解决此类

php - Facebook FQL——非常慢

$access_token=$facebook->getAccessToken();$query="SELECTuidFROMuserWHEREuidIN(SELECTuid2FROMfriendWHEREuid1=me())";$query=urlencode($query);$fql_query_url='https://graph.facebook.com/'.'fql?q='.$query.'&access_token='.$access_token;$fql_query_result=file_get_contents($fql_query_url);$fql_query_o

java - 非常奇怪的 Java2D setClip() 效果 - 错误?

我想创建一个具有自定义形状和透明度的对话框,比如指向某个组件的信息气泡。为此,我将JPanel添加到JDialog并覆盖面板的paintComponent(Graphics)方法。面板本身包含常规的JLabels和JButtons。工作正常,但只要我在面板绘制代码中使用Graphics2D.setClip(Shape),组件就会被背景overdraw。如果我不设置剪辑(设置为全新的Graphics2D对象,同样如此),一切正常。这让我很困惑,我不知道我能做些什么来解决它。P.S.:我不能在JDialog上使用setShape(Shape),因为那里没有抗锯齿功能。P.P.S.:实际用例