小编Mor*_*dur的帖子

session_start挂起

因为几次我们的服务器在你每次执行session_start时挂起.

出于测试目的,我创建了一个如下所示的脚本:

<?php
session_start();
?>
Run Code Online (Sandbox Code Playgroud)

从控制台调用它会挂起,甚至无法使用ctrl-c停止,只有kill -9可以正常工作.通过Apache调用它也是一样的./var/lib/php/session/保持空白但权限绝对正常,www可以写入并且还具有所有父文件夹的读取权限.

根据管理员的说法,服务器上没有进行任何更改,也没有为会话注册特殊代码.服务器是CentOS 4或5,昨天一切都运行良好.我们重新启动了服务器并更新了PHP,但没有任何改变.

我已经没想完了,有什么建议吗?

UPDATE

我们通过将项目移动到另一台服务器来解决了这个问题,所以当问题仍然存在于一台服务器上时,不再需要解决方案了.我将保持这个问题的开放,以防万一有人对将来遇到类似问题的人有所了解.

php session

26
推荐指数
2
解决办法
2万
查看次数

通过动态调整大小服务图像

我的公司最近开始遇到我们网站的图像处理问题.

我们有几个网站(成人娱乐),显示像DVD封面,快照和类似的图像.我们有大约100,000部电影,每部电影我们平均有30部快照+封面.几乎每个图像都有一个附加版本,模糊和覆盖非成员,这导致每部电影约50个图像或总共500万个基本图像.每个图像都有多个版本,具体取决于它放置在页面上的位置(缩略图,原始,小预览,不太小的预览,顶部列表中的小图像等),这会产生比图像更多的图像.我很想数数.

现在我有了使用服务器即时生成图像的想法,因为为所有不同的页面生成所有不同的图像变得非常笨拙(因为不同的页面有时甚至需要不同的图像大小来完成相同的任务) .

有没有人知道一个图像处理服务器可以动态缩小图像所以我们只需要提供原始图像,网络人员只需要他们需要的任何大小?

要求:

  • 性能非常高(每天数千名用户)
  • 即时模糊和叠加创建
  • 即时调整大小(有和没有保持纵横比)
  • 可以处理数百万张图片
  • 必须能够读取JPG,GIF,PNG和BMP并在它们之间进行转换

安全性并不是一个令人担忧的问题,即通过URL操作已经可以达到不模糊的图像,并且更安全性会很好但是不需要它,坦率地说我停止了关注(在未能进入我的同事头之后为什么(对于我们的小经销商)使用http://example.com/view_image.php?filename=/data/images/01020304.jpg来显示图像是一个坏主意.)

我们尝试使用PHP脚本来执行此操作,但对于这么多用户来说,性能太慢了.

提前感谢您提出的任何建议.

performance webserver image image-resizing

23
推荐指数
2
解决办法
2万
查看次数

Json序列化字典<Enum,Int32>的问题

每当我尝试序列化字典时,我都会得到异常:

System.ArgumentException: Type 
'System.Collections.Generic.Dictionary`2[[Foo.DictionarySerializationTest+TestEnum, Foo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'
is not supported for serialization/deserialization of a dictionary,
keys must be strings or object
Run Code Online (Sandbox Code Playgroud)

我的测试用例是:

public class DictionarySerializationTest
{
  public enum TestEnum { A, B, C }
  //tried with numbers, too: public enum TestEnum { A = 1, B = 2, C = 3 }

  public void SerializationTest()
  {
    Dictionary<TestEnum, Int32> data = new Dictionary<TestEnum, Int32>();

    data.Add(TestEnum.A, 1);
    data.Add(TestEnum.B, 2);
    data.Add(TestEnum.C, 3);

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    String …
Run Code Online (Sandbox Code Playgroud)

c# serialization json dictionary

13
推荐指数
2
解决办法
1万
查看次数

如何在不太"暴躁"的环境中使用TDD

我在一家OOP工作的公司工作......好吧,不要因为"过于复杂"而感到沮丧.我的同事写了很多100多行函数,它们通常都在"funcs.inc.php"或"something.inc.php"中,如果它们完全使用任何函数,通常它们都不会,因为复制粘贴是快点.

我想开始使用TDD至少我写的代码,但因为我必须与他们的代码接口,我不知道如何开始.

这不是遗留代码,因为他们正在积极开发它,我不想修改他们的代码,因为我不想引发冲突.

除了更换公司外,您会建议采用哪种方法?

php mysql tdd

8
推荐指数
1
解决办法
346
查看次数

从2D阵列中删除键的最简单方法是什么?

我有一个看起来像这样的数组:

array(
  0 => array(
    'key1' => 'a',
    'key2' => 'b',
    'key3' => 'c'
  ),
  1 => array(
    'key1' => 'c',
    'key2' => 'b',
    'key3' => 'a'
  ),
  ...
)
Run Code Online (Sandbox Code Playgroud)

我需要一个函数来获取一个只包含(变量)键数的数组,即reduce_array(array('key1','key3')); 应该返回:

array(
  0 => array(
    'key1' => 'a',
    'key3' => 'c'
  ),
  1 => array(
    'key1' => 'c',
    'key3' => 'a'
  ),
  ...
)
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?如果可能的话,没有任何额外的辅助函数,比如array_filter或array_map,因为我的同事已经抱怨我使用了太多函数.

源数组将始终具有给定的键,因此不需要检查是否存在.

如果值是唯一的,则奖励点(键将始终彼此相关,这意味着如果key1具有值a,则其他键将始终具有值b).

我当前的解决方案有效,但非常笨拙(即使名字很可怕,但找不到更好的):

function get_unique_values_from_array_by_keys(array $array, array $keys)
{
        $result = array();
        $found = array();

        if (count($keys) > 0)
        {
                foreach ($array as $item) …
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

6
推荐指数
1
解决办法
3500
查看次数

.htaccess根据主机名设置PHP值

对于我们的项目,我们需要根据环境(开发/生产)设置几个PHP值,最值得注意的是会话保存路径以及一些跟踪和分析设置.

我们不希望在PHP脚本中设置它们,因为由于一些可怕的遗留代码需要进行大量更改而且我们不希望每次在将它提交到git之前更改.htaccess(但我们需要.htaccess在源代码管理中).

有没有办法在.htaccess中做这样的事情:

if (hostname == "dev.example.com") {
  php_value session.save_path /tmp
  [...]
}
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess

5
推荐指数
1
解决办法
6893
查看次数

C#接口继承(基础知识)

为什么以下产生编译器错误:

public interface OwnSession : ISession { }

[...]
OwnSession s = SessionFactory.OpenSession(); // compiler error (in german unfortunately)
[...]
Run Code Online (Sandbox Code Playgroud)

"SessionFactory"在"OpenSession()"(NHibernate)上返回"ISession"

c# inheritance .net-2.0

4
推荐指数
2
解决办法
279
查看次数

MySQL:检查第一个字符是否_not_ AZ

我必须创建一个SQL查询来获取以特定字符开头的所有行,除非传递给(PHP)函数的参数为​​0,在这种情况下它应该得到每个以A - Z开头的行(如# 0-9.,$ etc).

获取这些行的最简单,最快捷的方法是什么?

DB:MySQL 5.1
专栏:标题

mysql

4
推荐指数
2
解决办法
7653
查看次数

使用部分源代码反编译C#Exe

我在工作中维护一个C#程序,由于硬盘崩溃,我已经丢失了一大堆已经部署的版本的代码(这是我自己的错误,因为我没有经常推送git存储库)现在我必须做一些更改该程序.我有程序的旧版本的源代码,我想反编译exe并将其与旧源合并以恢复丢失的代码.

我知道我可以使用像反射器这样的工具反编译,但我不想手动将它与旧代码合并,因为我可以再次编码更改(大约1-2天的工作).这是可能的还是我必须手动完成代码转储?

c# reflector .net-4.0

4
推荐指数
1
解决办法
789
查看次数

C#:2D子平铺线交叉点

我有一些问题让我的游戏算法工作,希望这里有人可以帮助我.谷歌似乎并不是一个很好的帮助,因为大多数解决方案只适用于完整的瓷砖.

在游戏中,单位可以占据拼图内部的不同位置,即它们可以位于拼图的左上角,中间,右下角,...位置(2/3),即(2.2/3.1),(2.5/3.5) ),(2.8/3.9).

如果他们从位置(2.2/3.1)移动到(5.7/4.1),我需要检查路径中是否有障碍物.

我目前的算法是:

  1. 从(2.2/3.1)开始
  2. 计算运动角度(即70度)
  3. 朝这个方向移动0.1步
  4. 检查我在哪个瓷砖(地板(pX)/地板(pY))
  5. 重复2

这个算法有效,但对我来说它看起来不是很有效,因为障碍物只能是一个完整的瓦片,而不是瓦片的一部分(单元不会碰撞).如果我增加步长,我开始错过仅略微交叉的瓷砖(即,您只穿过最左边的角).即使步长为0.1,仍然可能错过障碍物.

我试图找到一个解决方案,采取分图(与弯道所有瓷砖(地板(start.X)/楼(start.Y))和(小区(start.X)/小区(start.Y)),移动通过每个瓷砖并以数学方式检查它是否越过.可悲的是,我似乎缺乏这项检查所需的数学知识.

我的最后一个想法是将一个瓷砖的所有4个边框作为一条线并进行直线交叉,但这似乎比我原来的方法慢.

任何提示?

谢谢.

c# 2d intersection tiles line-intersection

3
推荐指数
1
解决办法
1681
查看次数

没有数据库的Zend

我用谷歌搜索了一个小时,但也许我的Google-Fu太弱了,我找不到解决方案.

我想创建一个通过JSON请求查询服务的应用程序(所有数据和后端/业务逻辑都存储在服务中).使用普通的PHP它很简单,因为我只是发出一个curl请求,json_decode结果并得到我需要的东西.这已经很好了.

请求可能如下所示:

http://service-host/userlist跟身体打电话:

{"logintoken": "123456-1234-5678-901234"}
Run Code Online (Sandbox Code Playgroud)

获得结果:

{
  "status": "Ok",
  "userlist":[
     {"name": "foo", "id": 1},
     {"name": "bar", "id": 2}
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在我们希望将其纳入Zend Framework,因为它是一个业余爱好项目,我们想要了解Zend.问题是我能找到的所有信息都使用数据库.

有没有办法创建一个不使用数据库的Zend项目?我怎样才能编写代表对象而不是对象和对象关系的模型?

php json zend-framework model

3
推荐指数
1
解决办法
621
查看次数

针对Windows注册表的主要原因是什么?

如果我想为Linux开发类似注册表的系统,我应该避免哪些Windows注册表设计失败?
哪些功能绝对必要?
主要问题是什么(安全性,易于配置......)?

我认为Windows注册表并不是一个坏主意,只是实现没有满足承诺.配置的常见位置(例如apache配置,数据库配置或邮件服务器配置)不是一个坏主意,可能会提高可维护性,尤其是当它具有(受保护的)远程访问选项时.

我曾经在基于内核的解决方案上工作但是因为其他人说注册表没用(因为Windows注册表是这样的)而停止了...你怎么看?

linux registry

2
推荐指数
3
解决办法
1758
查看次数