Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to parse wordpress post_meta table values

I have to parse wordpress post_meta table , particularly "_wp_attachment_metadata" field

For example:

Its value is for a post id = 99

> a:6:{s:5:"width";s:3:"238";s:6:"height";s:3:"179";s:14:"hwstring_small";s:23:"height='96'
> width='128'";s:4:"file";s:21:"2010/11/matt-lane.jpg";s:5:"sizes";a:1:{s:9:"thumbnail";a:3:{s:4:"file";s:21:"matt-lane-150x150.jpg";s:5:"width";s:3:"150";s:6:"height";s:3:"150";}}s:10:"image_meta";a:10:{s:8:"aperture";s:1:"0";s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:"caption";s:0:"";s:17:"created_timestamp";s:1:"0";s:9:"copyright";s:0:"";s:12:"focal_length";s:1:"0";s:3:"iso";s:1:"0";s:13:"shutter_speed";s:1:"0";s:5:"title";s:0:"";}}

I didnt understand how it is compiled or how it can be parsed outside wordpress. The thing i si have to load the latest articles with all the data sets of post on magento platform from wordpress.

please help me to parse this data to get the images src's.

Thanks in advance

like image 281
Elamurugan Avatar asked Feb 26 '11 05:02

Elamurugan


3 Answers

Try:

$a = unserialize("");
print_r($a);

http://php.net/manual/en/function.unserialize.php

like image 182
Craig Williams Avatar answered Oct 22 '22 19:10

Craig Williams


What I understand is:

There are two types of variables, for example:

  1. a:6:
  2. s:3:

a = array and 6 is the dimension of the array
s = string and 3 is the length of the string

like image 24
Virgilio Avatar answered Oct 22 '22 18:10

Virgilio


Thanks a lot for Craig quick answer.

Used the unserialize method and got everything from the string.

Array
(
    [width] => 523
    [height] => 523
    [hwstring_small] => height='96' width='96'
    [file] => 2010/11/tee1.jpg
    [sizes] => Array
        (
            [thumbnail] => Array
                (
                    [file] => tee1-150x150.jpg
                    [width] => 150
                    [height] => 150
                )

            [medium] => Array
                (
                    [file] => tee1-300x300.jpg
                    [width] => 300
                    [height] => 300
                )

            [post-thumbnail] => Array
                (
                    [file] => tee1-523x198.jpg
                    [width] => 523
                    [height] => 198
                )

        )

    [image_meta] => Array
        (
            [aperture] => 0
            [credit] => 
            [camera] => 
            [caption] => 
            [created_timestamp] => 0
            [copyright] => 
            [focal_length] => 0
            [iso] => 0
            [shutter_speed] => 0
            [title] => 
        )

)

Here is the output, now can take any image from the wordpress post meta_data

like image 3
Elamurugan Avatar answered Oct 22 '22 17:10

Elamurugan