从 html 代码获取 src 值?
Get src value from html code?
我有 WordPress 的简码。
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' );
我需要从此处的 $content 中提取 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]
也应该return
<div id="url_new">
<a href="https://www.youtube.com/embed/xxxxx" target="_blank">youtube.com</a>
</div>
回答(以防有人或我再次需要它):
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' );
感谢 Iago Melanias。
您可以使用带有正则表达式的 preg_match
函数从 html 代码中获取 src 参数。
function url( $atts, $content = null ) {
preg_match('/src="([^"]+)"/', $content, $matches);
$url = $matches[1];
$parsedUrl = parse_url($url);
return '<div id="url_new"><a href="'.$url.'" target="_blank">'.$parsedUrl['host'].'</a></div>';
}
并且不要使用 ***
作为注释,php 不会解释它并且会给你一个错误。
我有 WordPress 的简码。
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' );
我需要从此处的 $content 中提取 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]
也应该return
<div id="url_new">
<a href="https://www.youtube.com/embed/xxxxx" target="_blank">youtube.com</a>
</div>
回答(以防有人或我再次需要它):
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' );
感谢 Iago Melanias。
您可以使用带有正则表达式的 preg_match
函数从 html 代码中获取 src 参数。
function url( $atts, $content = null ) {
preg_match('/src="([^"]+)"/', $content, $matches);
$url = $matches[1];
$parsedUrl = parse_url($url);
return '<div id="url_new"><a href="'.$url.'" target="_blank">'.$parsedUrl['host'].'</a></div>';
}
并且不要使用 ***
作为注释,php 不会解释它并且会给你一个错误。