На моем сайте есть пользовательский загрузчик, чтобы пользователи могли вводить URL. Поэтому я создал оператор IF, чтобы показать, вводят ли они URL (кликабельный), и ничего, если они этого не делают. Теперь я пытаюсь раздеть http
или же https
, а также www
если он существует (пытается добиться https // www.link.com> link.com), но не знаю, куда его поместить. Предполагая, что я использую str_replace
функция.
<a href="<?php
if ( get_post_meta($post->ID, 'user_submit_url',true) ) {
echo get_post_meta($post->ID, 'user_submit_url',true);
} else {}?>" target="_blank">
<?php
if ( get_post_meta($post->ID, 'user_submit_url',true) ) {
echo get_post_meta($post->ID, 'user_submit_url',true);
} else {}?></a>
Любое понимание очень ценится!
Почему бы не создать такую функцию, как get_user_submit_url
сделать ваш код чище.
function get_user_submit_url(){
if ( get_post_meta($post->ID, 'user_submit_url',true) ) {
$user_url = get_post_meta($post->ID, 'user_submit_url',true);
// Strip domain here
// Not sure if you only need full path URL or only domain, so I only get the domain
$user_domain = preg_replace('#^www\.(.+\.)#i', '$1', $parse_url($user_url)['host']);
}
return $user_domain;
}
Итак, ваш HTML будет:
<a href="<?php echo get_user_submit_url(); ?>" target="_blank">
<?php echo get_user_submit_url(); ?>
</a>
Возможно, не лучшее решение, но вы могли бы использовать preg_replace
определить шаблон, который соответствует http и www.
var_dump(preg_replace("#https?:\/\/(www)?\.?#i","","https://www.test.de"));
что-то вроде этого. Другим решением является работа с parse_url
что-то вроде этого:
var_dump(parse_url("https://www.test.de", PHP_URL_HOST));
но тогда вы должны удалить www
потому что это часть хозяина.