我有WordPress的简码。从html代码获取src值?
function url($atts, $content = null) {
$url = parse_url($content);
$url_new = base64_encode($content);
return '<div id="url_new"><a href="'.$url_new.'" target="_blank">'.$url_new['host'].'</a></div>';
}
add_shortcode('url', 'url');
我需要从$内容中提取SRC只是在这里
function url($atts, $content = null) {
***EXTRACT $content and get src as $url_from_src***
$url = parse_url($content);
$url_new = base64_encode($content);
return '<div id="url_new"><a href="'.$url_new.'" target="_blank">'.$url_new['host'].'</a></div>';
}
add_shortcode('url', 'url');
所以我可以用
[url]
<iframe width="560" height="315" src="https://www.youtube.com/embed/xxxxx" frameborder="0" allowfullscreen></iframe>
[/url]
,并得到
<div id="url_new">
<a href="https://www.youtube.com/embed/xxxxx" target="_blank">youtube.com</a>
</div>
但是,只有当它是HTML,如果它是例如[url]https://www.youtube.com/embed/xxxxx[/url]
它也应该返回
<div id="url_new">
<a href="https://www.youtube.com/embed/xxxxx" target="_blank">youtube.com</a>
</div>
ANSWER(以防万一有人或者我再需要它):
function url($atts, $content = null) {
preg_match('/src="([^"]+)"/', $content, $matches);
if (isset($matches[1]))
{
$url = $matches[1];
$url_parsed = parse_url($url);
$url_parsed_base = base64_encode($url);
return '<div id="url_parsed"><a href="'.$url_parsed_base.'" target="_blank">'.$url_parsed['host'].'</a></div>';
} else {
$url = $content;
$url_parsed = parse_url($url);
$url_parsed_base = base64_encode($url);
return '<div id="url_parsed"><a href="'.$url_parsed_base.'" target="_blank">'.$url_parsed['host'].'</a></div>';
}
}
add_shortcode('url', 'url');
感谢伊阿古Melanias。
内容变量返回的HTML代码? –
是的,$ content是shortcode中的所有文本,如果你这样问的话。我不擅长编码。如果这是可能的,它会让我的发布更容易。 :) – user3918164