Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Обрезание всего лишнего после первого слеша в ссылках

Обрезание всего лишнего после первого слеша в ссылках


     11.07.2014    Все вопросы » Общие вопросы по PHP    3222

вопрос
Помогите с parse.class.php хочу сделать из:
<!--dle_leech_begin-->
<a href="http://мой_сайт.ru/engine/go.php?url=aHR0cDovL2Ntc2tvLnJ1L2Rs" target="_blank">http://абсолютно_любой_сайт.ru/dle/tips_dle/395-modalnoe-okno-v-dle.html</a>
<!--dle_leech_end-->

Это
<!--dle_leech_begin-->
<a href="http://мой_сайт.ru/engine/go.php?url=aHR0cDovL2Ntc2tvLnJ1L2Rs" target="_blank">http://абсолютно_любой_сайт.ru</a>
<!--dle_leech_end-->

Смысл в обрезании названия между тегами , было:
<a href="">http://абсолютно_любой_сайт.ru/dle/tips_dle/395-modalnoe-okno-v-dle.html</a>

стало:
<a href="">http://абсолютно_любой_сайт.ru</a>

Ответил: D0Gmatist


имеем http://domen.ru/dle/tips_dle/395-modalnoe-okno-v-dle.html
// переменная
$url = "http://domen.ru/dle/tips_dle/395-modalnoe-okno-v-dle.html";
// убираем http:// если есть или нету .. что бы не мешал
$urlStr = str_replace("http://", "", $url );
// в массив через слеш
$urlArray = explode("/", $urlStr);
// в переменную первое значение массива с приставкой http://
$url = "http://" . $urlArray[0];
Результатом будет http://domen.ru

9 комментариев

BAHO
Юзер

BAHO - 11 июля 2014 13:31 -

$url = 'http://www.site.ru/1/2/ert/avia.html';

$parse =  parse_url($url);

http://php.net/manual/ru/function.parse-url.php

Gopr
Юзер

Gopr - 11 июля 2014 13:38 -

Жесть какая

Gopr
Юзер

Gopr - 11 июля 2014 14:53 -

D0GMATIST спасибо, работает - получилось так:
Взял
if( $url['leech'] ) {
$url['html'] = $config['http_home_url'] . "engine/go.php?url=" . rawurlencode( base64_encode( $url['html'] ) );
return "<!--dle_leech_begin--><a href=\"" . $url['html'] . "\" " . $target . ">" . $url['show'] . "</a><!--dle_leech_end-->" . $url['end'];
} else {
if ($this->safe_mode AND !$config['allow_search_link'])
return "<a rel=\"nofollow\" href=\"" . $url['html'] . "\" " . $target . ">" . $url['show'] . "</a>" . $url['end'];
else
return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $url['show'] . "</a>" . $url['end'];
}

Заменил на
if( $url['leech'] ) {
// переменная
$url['shows'] = $url['html'];
// убираем http:// если есть или нету .. что бы не мешал
$urlStr = str_replace("http://", "", $url['shows'] );
// в массив через слеш
$urlArray = explode("/", $urlStr);
// в переменную первое значение массива с приставкой http://
$url['shows'] = "http://" . $urlArray[0];

$url['html'] = $config['http_home_url'] . "engine/go.php?url=" . rawurlencode( base64_encode( $url['html'] ) );
return "<!--dle_leech_begin--><a href=\"" . $url['html'] . "\" " . $target . ">" . $url['shows'] . "</a><!--dle_leech_end-->" . $url['end'];
} else {
if ($this->safe_mode AND !$config['allow_search_link'])
return "<a rel=\"nofollow\" href=\"" . $url['html'] . "\" " . $target . ">" . $url['shows'] . "</a>" . $url['end'];
else
return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $url['shows'] . "</a>" . $url['end'];
}


PS заменил везде $url['show'] на $url['shows']

Не уверен только на счет
$url['shows'] = $url['html'];
так можно писать?

Gopr
Юзер

Gopr - 11 июля 2014 15:34 -

Возможно сделать еще поддержку https ?
Делал так одновременно с http не работает
$url['show'] = $url['html'];
$urlStr = str_replace("http://", "", $url['show'] );
$urlStr = str_replace("https://", "", $url['show'] );
$urlArray = explode("/", $urlStr);
$url['show'] = "www." . $urlArray[0];

D0Gmatist
Юзер

D0Gmatist - 11 июля 2014 15:48 -

$url['show'] = $url['html'];

$urlWwwHttp = "";

if ( $urlStr = str_replace("www.", "", $url['show'] ) ) {
   $urlWwwHttp .= "www.";
}

if ( $urlStr = str_replace("https://", "", $urlStr ) ) {
    $urlWwwHttp .= "https://";
} elseif ( $urlStr = str_replace("http://", "", $urlStr ) ) {
    $urlWwwHttp .= "http://";
} else {
    $urlWwwHttp .= "http://";
}

$urlArray = explode("/", $urlStr);

$url['show'] = $urlWwwHttp . $urlArray[0];

Gopr
Юзер

Gopr - 11 июля 2014 15:56 -

Не работает ссылки с
http://
получаются так
www.http://сайт.ru
С
https://
так
www.http://https:
пока писал коммент обновился...

Gopr
Юзер

Gopr - 11 июля 2014 15:59 -

Теперь на оборот https:// норм все с http:// криво....

D0Gmatist
Юзер

D0Gmatist - 11 июля 2014 17:02 -

$urlStr = $url['html'];

$urlWwwHttp = "";

if( preg_match("/www./", $urlStr ) ) {
    $urlStr = str_replace("www.", "", $urlStr );
    $urlWwwHttp .= "www.";
}

if( preg_match("/https:\/\//", $urlStr ) ) {
    $urlStr = str_replace("https://", "", $urlStr );
    $urlWwwHttp .= "https://";
} elseif( preg_match("/http:\/\//", $urlStr ) ) {
    $urlStr = str_replace("http://", "", $urlStr );
    $urlWwwHttp .= "http://";
} else {
    $urlWwwHttp .= "http://";
}

$urlArray = explode("/", $urlStr);

$url['show'] = $urlWwwHttp . $urlArray[0];

Gopr
Юзер

Gopr - 11 июля 2014 17:20 -

Работает!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх