Использование json_encoding для массива - PullRequest
0 голосов
/ 05 ноября 2018

Мне нужно использовать json_encode для массива перед тем, как вставить его в базу данных. Так что мой массив содержит 9 фото ссылок. Правильный способ вставки фотографий в БД - построчно. Но когда я пытаюсь начать вставлять его. Все девять ссылок в одном ряду, и так продолжается. 1 строка 9 ссылок, 1 строка 9 ссылок. И я не знаю, в чем проблема.

Вот код

$rota = new \DOMXPath($parser);
        $images = $rota->query("//div[@class='areapageDetail']//div[@class='areapageDetailList_item_img']//img");

        foreach ($images as $image) {
            $photos[] = $image->getAttribute("src");
        }

Это фото URL содержит массив.

и способ, которым я вставляю, находится ниже.

foreach ($outlineUrl as $results) {
        if (strpos($results, 'http://www.daikyo.co.jp/') === 0) {
            $html = file_get_contents($results);
            $DOMParser = new \DOMDocument();
            $DOMParser->loadHTML($html);

            $changeForMyDB = [
                'region' => '関西',
                'photo' => json_encode($photos),
                'link' => json_encode($results),
                'building_name' => '',
                'price' => '',
                'old_price' => '',
                'extend' => '',
                'address' => '',
                'total_house' => '',
                'rooms' => '',
                'cons_finish' => '',
                'entry' => '',
                'balcony' => '',
                'company_name' => '',
            ];

Это часть кода. Например, $results тоже массив, который содержит ссылки на веб-сайт. И с этим проблем нет. Я могу вставлять ссылки на массив $ results строка за строкой. Но не фото ссылки. Почему это происходит только для ссылок на фотографии?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы также должны индексировать каждую фотографию в этом случае

$i = 0;
foreach ($outlineUrl as $results) {
    if (strpos($results, 'http://www.daikyo.co.jp/') === 0) {
        $html = file_get_contents($results);
        $DOMParser = new \DOMDocument();
        $DOMParser->loadHTML($html);

        $changeForMyDB = [
            'region' => '関西',
            'photo' => json_encode($photos[$i]),
            'link' => json_encode($results),
            'building_name' => '',
            'price' => '',
            'old_price' => '',
            'extend' => '',
            'address' => '',
            'total_house' => '',
            'rooms' => '',
            'cons_finish' => '',
            'entry' => '',
            'balcony' => '',
            'company_name' => '',
        ];
    }
    $i++;
}

Вы также должны убедиться, что количество фотографий соответствует вашему массиву outlineurl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...