2015-01-10 4 views
-1

поле изображения принимает этот тип формата для многократного импорта изображений:Как импортировать несколько изображений?

a:10:{i:0; 
     a:1:{s:6:"imgurl";s:71:"http://example.com/wp-content/uploads/2015/01/image.jpg";} 
     i:1; 
     a:1:{s:6:"imgurl";s:71:"http://example.com/wp-content/uploads/2015/01/image.jpg";} 
    }; 

Я пытаюсь найти способ возвратить json_encode с указанным выходом. В этом процессе я не могу определить a:10:{} при преобразовании в формат массива.

$arr = array('a' => 10, // <-- I have a problem here what to use 
      array('i' => 0, 'a' => 1, 
          array('s' => [6, 'imgurl'], // <-- I have a problem here what to use 
           's' => (71,"http://example.com/wp-content/uploads/2015/01/image.jpg") 
           ) 
         ) 
     ); 

Я делаю это правильно?

Update:

К сожалению, я не могу ответ быстрее. Поскольку я изучаю, как работают сериализованные и неэриализованные работы.

Немного истории, я использую WP All Import-Import XML/CSV WordPress для импорта данных XML.

Тип пользовательской почты WP property содержит имя поля _property_slider_image, в котором хранятся изображения. Стандартное перетаскивание контейнера XML в это поле не будет работать. Не работает, это не связывает загруженные изображения за каждое свойство.

После проверки базы данных mysql поле принимает этот тип synthax, о котором я упоминал выше. Я честно не знаю, что это. Поскольку я знаю только json_encode и json_decode. Вот почему мой пост упоминает json_encode.

Kiyan. Он дал мне подсказку, куда посмотреть.

Теперь я не буду вручную сопоставлять каждое изображение с каждой записью свойств.

Результат:

Вот мой выход после недели исследования.

function sl_output_property_slider(){ 
    $image_url_list = array(); 
    foreach (func_get_args() as $n) { 
     // get image name 
     $img_name = get_image_name($n); 
     // add directory location with the following format 
     // http://localhost/dev_slrealestate/wp-content/uploads/2015/01/1478_Image.jpeg 
     $imgurl = 'http://localhost/dev_site/wp-content/uploads/'. date('Y') .'/'. date('m') . '/' . $img_name; 
     array_push($image_url_list, array('imgurl'=>$imgurl)); 
    } 

    $serialized_data = serialize($image_url_list); 
    printf($serialized_data); 
} 

где function get_image_name($url) - вернуть имя изображений только из исходной строки URL.

Пример использования - короткий код

[sl_output_property_slider({Images[1]/Image[1]/ImageURL[1]}, 
    {Images[1]/Image[2]/ImageURL[1]},{Images[1]/Image[3]/ImageURL[1]}, 
    {Images[1]/Image[4]/ImageURL[1]},{Images[1]/Image[5]/ImageURL[1]}, 
    {Images[1]/Image[6]/ImageURL[1]},{Images[1]/Image[7]/ImageURL[1]}, 
    {Images[1]/Image[8]/ImageURL[1]},{Images[1]/Image[9]/ImageURL[1]}, 
    {Images[1]/Image[10]/ImageURL[1]} 
) 
] 
+0

Каков ваш вопрос ?! Я не понимаю, это так непонятно! Вы ищете вход для получения первого кода?! – Rizier123

+0

В качестве последней меры я беру обратный инженерный стиль решения. Как-то правильно. Я проверил базу данных, где находится эта таблица и поле. Синтаксис, который я упоминаю, - это то, как он хранится. В WP All Import-Import XML/CSV - настраиваемое поле - у вас есть два варианта размещения контейнера XML. 1.] Сериализация 2.] Отображение. Сериализация - лучший выбор. Но я потратил слишком много времени на простую комбинацию, чтобы разместить '\ {Images [1]/Image [10]/ImageURL [1]}', например, '_property_slider' без успеха. – Charlesliam

ответ

1

Как указано Киян, вы путаете между json и serialize форматов.

Представление массива вы дали может быть создан с помощью:

$arr = array(
    array('imgurl' => 'http://example.com/wp-content/uploads/2015/01/image.jpg'), 
    array('imgurl' => 'http://example.com/wp-content/uploads/2015/01/image.jpg'), 
); 

$serialized = serialize($arr); 

Пример:

echo $serialized; 

Дает:

а: 2: {я: 0; а: 1 : {s: 6: "imgurl"; s: 55: "http://example.com/wp-content/uploads/2015/01/image.jpg";} i: 1; a: 1: {s: 6: "imgurl"; s: 55: "http://example.com/wp-content/uploads/2015/01/image.jpg";}}

+0

Да, я понял, что после того, как Киян упомянул о неэриализованности. Я уже выяснял, кто использовать функцию сериализации перед тем, как прочитать ваш ответ. – Charlesliam

+0

Это самое главное :-). –

+0

Довольно необычно использовать 'printf ($ serialized_data)' как return, а не 'return $ serialized_data' – Charlesliam

Смежные вопросы