标签: php4

如何向后兼容php 4与php 4?

我在使用php 4编写的代码库上工作.我想通过将代码升级到php 5(我的主机提供的最新版本)的过程.我想知道是否有其他人已经经历过类似的升级体验,并且可以分享其中存在的问题/陷阱,我的代码中需要更改的内容,两个版本之间没有向后兼容的内容?

php php4 backwards-compatibility

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

git-p4并从其他回购中拉出来

我有一台笔记本电脑和一台台式机,我正在努力学习使用git来管理我对perforce存储库的工作.我在桌面上成功使用git-p4,并且可以在笔记本电脑上成功使用它.但是,我希望能够做的事情之一就是"拉"或"推"更改从笔记本电脑到桌面,反之亦然,而不先将它们检入到与git同步的p4分支.

所以,这就是我设置两个回购的方法:1)使用git-p4 clone在我的桌面上设置一个repo.做一些工作,做几个提交git,几个提交到git-p4.一切都按预期工作.2)之后,在我的笔记本电脑上设置一个回购,准备在两台机器上工作.同样地,使用git-p4来复制现在的当前p4 repo(现在已经检查过几次修改,我在(1)中执行了git-p4.

现在,我希望做的事情:1)在桌面上做一些工作.将工作交给git,但不是p4.2)转到笔记本电脑,从桌面回购中做一个git pull ... 3)继续我的笔记本电脑工作,定期做git.4)(可选)从笔记本电脑提交p4 5)(可选)推送到桌面(或从笔记本电脑拉到桌面)并继续在桌面上工作等.

基本上,我希望能够在笔记本电脑和台式机之间来回推送/拉出东西,而无需实际登录到p4.

这听起来应该是可能的吗?如果是这样,我上面有错误的步骤吗?

以下是持续发生的事情:当我尝试在上面的(2)中执行"拉"时,我收到错误消息,说明存在冲突 - 这些冲突与p4分支的第一次检出之间发生的变化有关,第二个git-p4 repo创建的时间.换句话说,它们似乎是对第二个回购包含的代码中应该已经存在的更改的重放,但出于某种原因,它们不是.

我对git很新,所以我希望我的问题不是愚蠢或不可能理解.在此先感谢您提供任何帮助.

git merge perforce php4 git-p4

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

PHP:在body标签后面注入iframe

我想在body标签的开头正下方放置一个iframe.这有一些问题,因为body标签可以有各种属性和奇怪的空白.我猜这将需要正则表达式正确执行.

编辑:这个解决方案必须与PHP 4和性能是我的关注.这是为了这个http://drupal.org/node/586210#comment-2567398

html regex php4

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

AJAX操作期间PHP会话中的类对象重置?

我有一个简单的PHP会话和AJAX示例,它在会话中保存数组时有效:

请求文件:

<?php
    session_start();
    $_SESSION['data'] = array('foo','bar');
    echo count($_SESSION['data']);
?>
<html>
<head>
    <title>Test</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<body>
    <button id="but1">Go</button>
    <script type="text/javascript">
        $('#but1').click(function() {
            $.ajax({
                url:'ajaxtest_remote.php',
                success:function(result) {
                    alert(result);
                }
            });
        });
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

远程文件:

<?php
    session_start();
    echo 'count=' . count($_SESSION['data']);
?>
Run Code Online (Sandbox Code Playgroud)

第一个文件的回显显示为2,成功函数中的警报显示"count = 2".快乐的时光.

出现问题的地方是我将数组替换为类对象:

请求文件:

<?php
    session_start();
    include('ajaxtest_class.php');
    $_SESSION['obj'] = new TestClass('foo,bar');
    echo count($_SESSION['obj']->dataList);
?>
<!-- HMTL AS ABOVE -->
Run Code Online (Sandbox Code Playgroud)

远程文件:

<?php
    session_start();
    echo 'count=' . count($_SESSION['obj']->dataList);
?>
Run Code Online (Sandbox Code Playgroud)

班级档案:

<?php
    class TestClass {
        var $dataList;
        function TestClass($incoming) …
Run Code Online (Sandbox Code Playgroud)

php ajax session php4 class

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

更改列整理 - 是否安全?

我的票务系统中有一张表,有15,000条记录,每条记录都包含一封电子邮件,该电子邮件已转换为要添加到故障单的邮件.

我们当前的问题是整理 - 当我得到系统时,它使用latin1_swedish_ci.但是,我们在系统中使用了几种欧洲语言,因此我们需要能够正确存储非ASCII字符.

我无法使用latin1_swedish_ci排序规则,但我在系统的测试版本上发现将排序规则切换为utf8_bin可以解决问题.

因此,我需要知道在实时系统上对我的表/列进行此更改是否安全.这会花费很长时间(当你试图让它真的很难工作时,PHPMyAdmin非常可怕)还是会破坏任何现有数据?

mysql php4 collation phpmyadmin

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

Codeigniter在非对象上调用成员函数set_userdata()

我在一个CI应用程序中遇到致命错误,我刚从php4共享主机转移到php5共享主机.

Fatal error: Call to a member function set_userdata() on a non-object in /home/chuck_ravenna/bob.ravennainteractive.com/system/application/helpers/authenticate_helper.php on line 13
Run Code Online (Sandbox Code Playgroud)

代码完整位于以下链接中

https://gist.github.com/1474173

我想弄清楚php版本是否可能成为问题.该站点在旧服务器上运行良好,新服务器没有php4作为选项.

破解的具体代码行是:

    $this->session->set_userdata("admin", $user[0]["admin"]);
Run Code Online (Sandbox Code Playgroud)

php codeigniter php4

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

无法使用usort对日期进行排序

我有用户定义的函数排序,按日期排序.它在同一年运行良好,并且在年份发生变化时不起作用.这是按函数排序的日期示例:

 01/02/2013  
 01/03/2013 
 12/12/2012  

 function mysort($a,$b) {
   return $a['date']>$b['date'];
 }

 usort($arr,"mysort");
Run Code Online (Sandbox Code Playgroud)

这是一个使用php4的旧应用程序.有没有办法直接比较日期?

php php4

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

在PHP中引入内部(内置)函数和预定义常量(版本号)时查找

我正在处理几个向后兼容性问题,并一直在使用PHP手册作为参考.我一直在使用位于页面顶部的版本信息.例如,is_null版本信息是

(PHP 4> = 4.0.4,PHP 5,PHP 7)

据我所知,只有当版本大于或等于4.0.4时才存在于PHP 4中的is_null,并且它也存在于PHP 5和PHP 7的所有版本中.

我已经意识到信息可能不正确,因为is_dir版本信息是

(PHP 4,PHP 5,PHP 7)

但通过做一点谷歌搜索("is_dir""PHP 3")我发现它是在版本3中引入的.

首先我是否正确理解了版本信息?还有另一种方法可以找到添加函数或预定义常量的方法吗?

编辑

PHP 4更改日志PHP 5更改日志是有帮助的,他们提供的所有更改的详细列表,我没有理由相信任何信息不正确.不幸的是,在此之前似乎没有任何更改日志.

更新

虽然似乎没有更改日志,但可以从http://museum.php.net/下载所有PHP版本的源代码,因此可以确定函数的来源,预定义常量和PHP的任何其他部分从查看来源.

php php4 version php-5.6 php-7

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

PHP:在服务之前重新解析整个页面?

在页面的末尾,如果发生某些事情,则需要将其清除,然后需要在向客户端提供服务之前重新解析整个页面.我要回复一个javascript来刷新页面,但是这会让他们加载页面然后重新加载它......我想知道是否有办法让php引擎回到开头并重新开始 - 稀疏整个页面?

谢谢!

我会尝试更清楚地解释这个问题,但它很复杂,我是一个可怕的沟通者.我在列出产品的页面上为用户提供选择字段以缩小结果的选项.系统会记住这一点,因此他们无需继续选择它们.如果他们缩小像金属颜色这样的类别,然后进入金属颜色与水晶雕像无关的类别,它将不会显示任何结果,因为没有一个会匹配所选择的金属颜色.生成查询以从数据库中提取产品非常复杂,因为不同的类别对于查找正确的产品有不同的要求.因此,一旦生成了查询,我想针对mysql_num_rows()测试它,如果没有结果清除用户选择并重新开始.

php parsing php4

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

构建一个'简单'的php url代理

我需要在我正在构建的Web应用程序中实现一个简单的PHP代理(基于Flash并且目标服务提供程序不允许编辑其crossdomain.xml文件)

任何php专家可以提供以下2个选项的建议吗?此外,我认为,但我不确定,我还需要包含一些标题信息.

感谢您的任何反馈!

选项1

$url = $_GET['path'];
readfile($path);
Run Code Online (Sandbox Code Playgroud)

选项2

 $content .= file_get_contents($_GET['path']);

 if ($content !== false) 
 {  

      echo($content);
 } 
 else 
 {  
      // there was an error
 }
Run Code Online (Sandbox Code Playgroud)

php proxy php4 proxy-classes

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