404 Not Found nginx / 1.12.2 - 在foreach中使用File_get_contents

时间:2018-03-07 04:17:26

标签: php wordpress nginx

我已经尝试了几种方法但仍然无法解决。我有一个包含许多网址的数组,我使用foreach访问网站并使用file_get_contents()提取数据

但是404 Not Found nginx/1.12.2是大约2分钟后出现并记录大约280条记录的错误。

除了尝试执行max_execution_timemysql.connect_timeout之外,还要在代码中插入ini.php 01200的值,结果始终相同,2分钟后显示错误404 Not Found nginx / 1.12.2

在我尝试使用set_time_limit (0);sleep (1)的代码中,但它无法解决问题

ini_set('mysql.connect_timeout','0');   
ini_set('max_execution_time', '0');   

function create_wordpress_post_with_code() {

    if( isset( $_POST['mysubmitbtn'] ) ) {
        set_time_limit(0);

        $myGetCsv = function ($str) {
            return str_getcsv($str, ';');
        };

        $lines = array_map($myGetCsv, file(''.get_template_directory_uri() . '/list.csv', FILE_IGNORE_NEW_LINES));    

        foreach($lines as list($var1, $var2)){

            set_time_limit(0);  

        $html = file_get_contents( 'https://example.com/'.$var1.'/'.$var2' ); 
        $document = new DOMDocument();              
        @$document->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
        $domxpath = new DOMXPath($document);

         // more code here

                $post_id = wp_insert_post(
                            array(
                                'comment_status'    =>   'open',
                                'ping_status'       =>   'closed',
                                'post_author'       =>   $author_id,
                                'post_name'         =>   $slug,
                                'post_title'        =>   $title,
                                'post_content'      =>   $content,
                                'post_status'       =>   'publish',
                                'post_type'         =>   'post'
                            )
                        );
         sleep(1);

        }

    }


} 
add_action( 'init', 'create_wordpress_post_with_code' );

我该怎么做才能解决此错误?或者除了可能因为执行时间而发生此错误的可能原因是什么?

1 个答案:

答案 0 :(得分:1)

每当必须使用变量时,必须在字符串中使用"。其他方面,它的价值不会被解释。  变化

$html = file_get_contents( 'https://example.com/$var1/$var2' ); 

$html = file_get_contents("https://example.com/$var1/$var2"); 

或者将字符串与.

连接起来
$html = file_get_contents( 'https://example.com/'.$var1.'/'.$var2);