在服务器中运行PHP并仅显示结果

时间:2012-03-05 20:24:06

标签: php graph opengraph

我在很多地方搜索过,并没有找到适合我问题的任何解决方案..我有一个PHP代码需要大约1分钟来检索信息,因为它提取了网址在一个开放的图形PHP,所以它必须打开很多网站,找到元数据(如:标题,图像,描述),并为我回声...所以,整个系统工作正常,但每次一个用户进入网站php代码必须再次检索元数据和东西...

我需要创建一个在后台服务器中运行PHP并存储信息的系统,所以当用户进入网站时,所有的工作都已经完成,只显示结果......任何想法?

我做了这个测试:

等待1分钟后,页面已打开显示结果,我输入了源代码,复制了所有内容并创建了一个新的.html页面(复制并粘贴生成的代码),当然一切都是转换成一个简单的html代码显示php结果...所有的东西都在一秒钟内加载,因为所有的Open Graph过程都已经完成了..这就是我需要的,但是自动...

(英语不是我的主要语言,所以,你知道):)

3 个答案:

答案 0 :(得分:2)

将结果添加到数据库或缓存文件中。有一个cron脚本运行脚本需要很长时间,但修改脚本以将输出保存到文件或数据库。然后,让面向用户的脚本只检索文件/数据库的内容。

答案 1 :(得分:0)

There are many options to do this.  Some depend on how you want users to get the information.

 1. If you're on Windows, you could try using:

    $WShell = new COM("WScript.Shell");
    $path = ($_SERVER['DOCUMENT_ROOT']."/long_task.php");
    $exec = $WShell->Run("php.exe -f $path", 0, false);


Have the long_task.php update the database or something to let you know you've completed the task and that the user can retrieve the updates.

 2. Load the data into an iframe


    <!-- Send the data request to the iframe -->
    <form action="long_task.php" target="ifr">
    ...
    </form>

    <!-- put iframe somewhere on your main page -->
    <iframe name="ifr" id="ifr" >
    </iframe>

 3. Also, you may wish to consider using javascript instead.  A jQuery asynchronous request to the long_task.php file can be created using something like:

    <!-- HTML code -->
    <a href="post_data()">Button</a>

    <!-- jquery code -->
       function post_data() {
           var dataString = $('#data_to_send1, #data_to_send2).serialize();
           $.post(url, dataString, function(data) { 
                       //callback details
               //use js-jquery to display your data here
           });
       }

答案 2 :(得分:0)

你曾经使用过memcached吗? Facebook和所有大型网站都使用它,而且很容易实现。

http://memcached.org/

祝你好运!