【问题标题】:execute js function by php command line通过php命令行执行js函数
【发布时间】:2015-12-25 22:17:48
【问题描述】:

我在 Codeigniter 工作。我有一个视图 book.php,它有一个 js 文件 frontend_book.js,在它后面运行,其中包含一个同步日历的函数。

来自 frontend_book.js 的片段

googleSync: function() {
    provider_id= $('#select-provider').val();
    getUrl = GlobalVariables.baseUrl + 'google/sync/' + provider_id;
    jQuery.get(getUrl,provider_id, console.log('Google sync successful'),'json');
}

我想在我的 google.php 控制器中使用 php 函数独立于 cron 作业中的视图运行此函数,它执行以下操作:

public function syncallproviders() {

    //get the array of providers:
    $this->load->model('providers_model');
    $providers = $this->providers_model->get_available_providers();

    //for each providers as provider run the js googleSync
    foreach ($providers['id'] as $provider) {

        //Run googleSync where #select-provider is $provider

    }
}

然后我可以使用

在 cron 作业中运行
 php /mypath/index.php "google" syncallproviders

我该如何整合它?

这是我将两者放在一起的最佳猜测:

<?php
    //get the array of providers:
    $this->load->model('providers_model');
    $providers = $this->providers_model->get_available_providers();

    //for each providers as provider run google sync
    foreach ($providers as $provider) { ?>  
    <script type="text/javascript">
        var getUrl=<?php echo $this->config->base_url().'/google/sync/'.$provider['id']; ?>,
        var provider_id =<?php echo $provider['id']; ?>,
        jQuery.get(getUrl,provider_id, console.log('Google sync successful'),'json'),
    </script>
<?php   }

这看起来对吗?现在我怎样才能从命令行运行它?如果我从命令行运行浏览器,什么可以代替浏览器?

【问题讨论】:

    标签: javascript php codeigniter command-line


    【解决方案1】:

    如果出于某种原因,您想将其作为 cron 运行,并且您想保持应用程序现在的样子(用 php 编写的 mvc),那么您可以使用无头浏览器(例如 phantomjs)来访问来自作为 cron 运行的 bash 脚本的所需 url。这有点令人费解 - 但它会做你想做的事。 - 如果你想通过 php 保留它,甚至还有一个 php 包 - http://jonnnnyw.github.io/php-phantomjs/

    【讨论】:

      【解决方案2】:

      你不能让 js 从命令行运行。它仅在浏览器和其他设置为执行它的环境中运行。您想做的所有事情都必须使用 PHP 或其他在命令行上运行的语言来完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-21
        • 2018-11-21
        • 2015-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多