有没有办法在PHP中显示字段的文本内容?

时间:2017-05-04 19:28:11

标签: php wordpress advanced-custom-fields

所以我在s模板页面中有两个字段:

<?php echo get_post_field('post_content', 12345); ?>
<?php the_field('advertisement_one', 12345); ?>

第一个字段呈现为:

<p>
<img src="test.jpg">
</p>

第二个字段呈现为:

<p>
<img src="test2.jpg">
</p>

有没有办法可以从两个字段中的“src”中提取文本内容?

我的目标是写/显示:

test.jpg

or 

test2.jpg

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

<?php
$str = get_post_field('post_content', 12345);
$str = str_replace("\n", '', $str);
$str = str_replace('<p><img src="', '', $str);
$str = str_replace('"></p>', '', $str);
echo $str;
?>

答案 1 :(得分:1)

$content1 = get_post_field('post_content', 12345);
$content2 = get_field('advertisement_one', 12345);
$src1 = preg_replace('|^.+src=["\'](.*)["\'].+$|s','$1',$conten1);
$src2 = preg_replace('|^.+src=["\'](.*)["\'].+$|s','$1',$conten2);

答案 2 :(得分:1)

您可以使用preg_match检查img标记并获取其src值

请尝试此代码

<?php $value = get_post_field('post_content', 12345); 
$value2 = get_field('advertisement_one', 12345); 

$src1 = preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $value, $matches);
echo $matches[1];

$src2 = preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $value2, $matches);
echo $matches[1];

?>