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

在服务器中运行PHP并仅显示结果,php,graph,facebook-opengraph,Php,Graph,Facebook Opengraph,4.我找了很多地方,都没有找到解决问题的办法。。我有一个PHP代码,大约需要1分钟来检索信息,因为它在一个开放的PHP图形中获取URL,所以它必须打开很多站点,找到元数据(如:标题、图像、描述)并为我回显。。。因此,整个系统运行良好,但每次用户进入站点时,php代码都必须再次执行所有工作,检索元数据和其他内容 我需要创建一个在后台服务器上运行PHP并存储信息的系统,这样当用户进入站点时,所有的工作都已经完成,只显示结果。。。有什么想法吗 我做了这个测试: 经过1分钟的等待,页面已经打开显示结果,

4.我找了很多地方,都没有找到解决问题的办法。。我有一个PHP代码,大约需要1分钟来检索信息,因为它在一个开放的PHP图形中获取URL,所以它必须打开很多站点,找到元数据(如:标题、图像、描述)并为我回显。。。因此,整个系统运行良好,但每次用户进入站点时,php代码都必须再次执行所有工作,检索元数据和其他内容

我需要创建一个在后台服务器上运行PHP并存储信息的系统,这样当用户进入站点时,所有的工作都已经完成,只显示结果。。。有什么想法吗

我做了这个测试:

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


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

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

有很多方法可以做到这一点。有些取决于您希望用户如何获取信息。
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
           });
       }
1.如果您在Windows上,可以尝试使用: $WShell=newcom(“WScript.Shell”); $path=($\u服务器['DOCUMENT\u ROOT'].“/long\u task.php”); $exec=$WShell->Run(“php.exe-f$path”,0,false); 让long_task.php更新数据库或其他东西,让您知道您已经完成了任务,并且用户可以检索更新。 2.将数据加载到iframe中 ... 3.此外,您可能希望考虑使用JavaScript。可以使用以下方法创建对long_task.php文件的jQuery异步请求: 函数post_data(){ var dataString=$('#data_to_send1,#data_to_send2).serialize(); $.post(url、数据字符串、函数(数据){ //回拨详情 //使用js jquery在此处显示数据 }); }
您是否使用过memcached??Facebook和所有大型网站都使用这个功能,而且很容易实现

祝你好运