2012-04-17 6 views
0

У меня возникла проблема с попыткой получить этот фрагмент кода для вывода отдельного метатега og: image для каждого изображения в массиве.Facebook Meta Tag PHP-условие

<?php function catch_that_image() { 
global $post, $posts; 
$first_img = ''; 
ob_start(); 
ob_end_clean(); 
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); 
$first_img = $matches [1] [0]; 
if(empty($first_img)){ 
     //Defines a default image 
     $first_img = "http://example.com/images/fbthumb.jpg"; 
    } 
return $first_img; 
} 
?> 

В настоящее время код возвращается совпавшего IMG SRC тега, но я хотел бы, чтобы возвратить их все как отдельные теги, так что я могу выбрать, какой разделить изображение для использования.

Я знаю, что эту линию:

$first_img = $matches [1] [0]; 

должен быть изменен в некоторый тип для каждого условия, но Im не уверен, как это сделать. Любая помощь будет принята с благодарностью. Благодаря!

EDIT:

Вот мой код после последнего предложения:

<?php function catch_that_image() { 
global $post, $posts; 
$result = preg_match_all('#<img.+src=[\'"]([^\'"]+)[^>]*>#i', $post->post_content, $matches); 

return $matches[1]; 

}

>

"/>

Я до сих пор не могу понять это? Любые идеи?

+0

'<функция PHP catch_that_image() { глобальный $ пост, $ сообщений; $ imgSources = array(); $ result = preg_match_all ('# ] *> # i', $ post-> post_content, $ matches); foreach ($ matches [1] as $ match) { $ imgИсточники [] = $ match; } return $ imgSources; } > <мета свойство = "OG: изображение" содержание = ""? /> ' – brianr1

ответ

0

Попробуйте эту функцию. Он вернет массив источников изображений. Затем вы всегда можете использовать первое изображение в массиве как образ по умолчанию.

function catch_that_image() { 
    global $post, $posts; 
    $imgSources = array(); 
    $result = preg_match_all('#<img.+src=[\'"]([^\'"]+)[^>]*>#i', $post->post_content, $matches); 

    foreach($matches[1] as $match) { 
     $imgSources[] = $match; 
    } 

    return $imgSources; 
} 

или проще

function catch_that_image() { 
    global $post, $posts; 
    $result = preg_match_all('#<img.+src=[\'"]([^\'"]+)[^>]*>#i', $post->post_content, $matches); 

    return $matches[1]; 
} 

Использование функции:

$imageArray = catch_that_image(); 
foreach($imageArray as $image) { 
    echo '<meta property=​"og:​image" content=​"$image">'; 
} 
+0

в порядке, так что я использовал последний, который дал мне здесь, и его еще не вернули значения. Я не могу понять, как добавить код к этому, так что я добавляю редактирование в исходное сообщение. – brianr1

+0

В firebug его возвращение: brianr1