Как из js получить url адрес?

1 234
S
На сайте с 13.11.2012
Offline
72
#21

Понял.

Sitealert, большое спасибо!

Работает :)

Как в строке

$itemtitle=str_replace('"', "'", $item->title);

сделать перечисление знаков, которые нужно заменить (кроме " еще заменять # и « и » и т.д.)?

Попробовал через запятую чередовать - не работает.

Есть готовая функция но как ее применить не понимаю

public static function clean($string,$level='1',$chars=FALSE,$leave=""){
if(is_array($string)) return array_map("Main::clean",$string);
$string=preg_replace('/<script[^>]*>([\s\S]*?)<\/script[^>]*>/i', '', $string);
switch ($level) {
case '3':
if(empty($leave)){
$search = array('@<script[^>]*?>.*?</script>@si',
'@<[\/\!]*?[^<>]*?>@si',
'@<style[^>]*?>.*?</style>@siU',
'@<![\s\S]*?--[ \t\n\r]*>@'
);
$string = preg_replace($search, '', $string);
}
$string=strip_tags($string,$leave);
if($chars) {
if(phpversion() >= 5.4){
$string=htmlspecialchars($string, ENT_QUOTES | ENT_HTML5,"UTF-8");
}else{
$string=htmlspecialchars($string, ENT_QUOTES,"UTF-8");
}
}
break;
case '2':
$string=strip_tags($string,'<b><i><s><p><u><strong><span>');
break;
case '1':
$string=strip_tags($string,'<b><i><s><u><strong><a><pre><code><p><div><span>');
break;
}
$string=str_replace('href=','rel="nofollow" href=', $string);
return $string;
}

Спасибо!

S
На сайте с 30.09.2016
Offline
469
#22
Smirnof:
$itemtitle=str_replace('"', "'", $item->title);
сделать перечисление знаков, которые нужно заменить (кроме " еще заменять # и « и « и т.д.)?

Штоле совсем лень справочник прочитать?

Вместо первого аргумента - $arr1, вместо второго аргумента - $arr2, где

$arr1 = array('"', '#', '«', '»');

$arr2 = array("'", '& #35;', '&laquo;'', '&raquo;');

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
S
На сайте с 13.11.2012
Offline
72
#23

Я бы почитал, только где не знаю, точнее что искать не знаю.

Куда вставить аргументы

$arr1 = array('"', '#', '«', '»');

$arr2 = array("'", '& #35;', '&laquo;'', '&raquo;');

не понял... + где прописано то, чем их заменить... :(

попробую методом тыка

yet_warm
На сайте с 26.05.2007
Offline
129
#24
Smirnof:
Я бы почитал, только где не знаю, точнее что искать не знаю.
Куда вставить аргументы

$arr1 = array('"', '#', '«', '»');
$arr2 = array("'", '& #35;', '&laquo;'', '&raquo;');

Йолы, тут например.

Многие хотят попасть в рай, мало кто хочет для этого умирать.
S
На сайте с 13.11.2012
Offline
72
#25

Разобрался, спасибо!

Я изначально не понял, что $arr2 заменяет значения в $arr1

Сделал так в итоге (знаки в примере это тестовый вариант, пример рабочий)

//$itemtitle=str_replace('"', "'", $item->title);
$arr1 = array('"', '#', '«', '»');
$arr2 = array("'", '& #35;', '!', '!');
$itemtitle=str_replace($arr1, $arr2, $item->title);

есть ошибки в логике? :)

Спасибо!

S
На сайте с 13.11.2012
Offline
72
#26

Помогите, пожалуйста, разобраться с передачей параметра в ссылке php

Создал функционал на сайте.

Вывожу ряд тегов со ссылками и двумя параметрами в них ?new=текст&url=текст

После перехода по этим ссылкам, происходит поиск по сайту.

В результатах поиска в самом начале вывожу тест который был передан в ссылке (?new=текст&url=текст), далее идут сами результаты поиска.

Вывожу тал:

<?php

function foo(&$url) { // теперь параметр будет ссылаться на оригинальное значение
$url = $_GET["url"]; // присваиваем новое значение
}

foo($color);

function foos(&$new) { // теперь параметр будет ссылаться на оригинальное значение
$new = $_GET["new"]; // присваиваем новое значение
}

foos($colors);

?>


<?php

// Продаю в результатах поиска
echo "<br /><center><a href='$color' class=\"div_index_topics_more\" target=\"_blank\" rel=\"nofollow\">Купить $colors</a></center>";

?>

результаты поиска...

Вопрос, как передать параметр той же ссылки - каждому результату поиска, чтобы перейдя на страницу конечного результата отобразить тот же текст в самом верху?

Результаты поиска формируются следующей функцией:

protected function listSearchVideo($yt){
$yt->snippet->channelTitle = ($yt->snippet->channelTitle);

if(empty($yt->snippet->channelTitle)) $yt->snippet->channelTitle = "Unknown";
global $listQueryVideoHit;

if (!isset($listQueryVideoHit))
$listQueryVideoHit = 0;

elseif($listQueryVideoHit === 3)
$listQueryVideoHit = 0;
return "<div class='div_topic_cover topic_cover_".(++$listQueryVideoHit)." reviews'>
<a href=\"".Main::href("video/{$yt->id->videoId}")."\" class=\"a_topic_cover\">
<img src=\"/themes/images/icon/blank_275x180.png\" class=\"img_topic_cover\" alt=\"{$yt->snippet->title}\" style=\"background: url(https://img.youtube.com/vi/{$yt->id->videoId}/mqdefault.jpg;);\">
<div class=\"div_topic_cover_caption\">{$yt->snippet->title}</div>
</a>
</div>";
}

Много чего перепробовал но истину не нашел :(

Хотелось бы еще сделать так, чтобы если параметра в ссылке изначально нет, то и выводить его соответственно не нужно.

Так как ссылка может быть как с параметром так и без него.

И еще, пожалуйста, помогите скрыть этот блок

<?php

function foo(&$url) { // теперь параметр будет ссылаться на оригинальное значение
$url = $_GET["url"]; // присваиваем новое значение
}

foo($color);

function foos(&$new) { // теперь параметр будет ссылаться на оригинальное значение
$new = $_GET["new"]; // присваиваем новое значение
}

foos($colors);

?>


<?php

// Продаю в результатах поиска
echo "<br /><center><a href='$color' class=\"div_index_topics_more\" target=\"_blank\" rel=\"nofollow\">Купить $colors</a></center>";

?>

в том случае если параметр не задан, сейчас в теле страницы в этом случае отображается "Купить "

Большое спасибо!

S
На сайте с 13.11.2012
Offline
72
#27

Вопросы не решены :(

Скрыть блок таким образом не получилось

<?if(!empty($sk["$color"])):?>
............код............
<?php endif;?>

Как подставить параметр из url адреса в строку

<a href=\"".Main::href("video/{$yt->id->videoId}")."\" class=\"a_topic_cover\">

тоже не разобрался.

Помогите или направьте в нужном направлении. Спасибо!

S
На сайте с 13.11.2012
Offline
72
#28

Пожалуйста, помогите доработать функцию.

Ели добился нужного мне результата, хотел, чтобы из url адреса строки автоматически брался параметр new и url (после ?), пример:

вася.ру/вася?new=мой телефон&url=номер такой то

С этим справился.

Не могу переписать функцию так, чтобы если в строке url нет параметров new и url,

в том месте где должны были бы отобразиться результаты отсутствовали пустые параметры, пример:

вася.ру/вася?new=&url=

Т.е. убрать ?new=&url= если в адресе их нет

Прошу прощение, если не внятно задал вопрос, готов ответить на ваши вопросы.

Очень прошу помочь.

Код функции:


protected function listSearchVideo($yt){

$yt->snippet->channelTitle = ($yt->snippet->channelTitle);

if(empty($yt->snippet->channelTitle)) $yt->snippet->channelTitle = "Unknown";

global $listQueryVideoHit;

if (!isset($listQueryVideoHit))
$listQueryVideoHit = 0;

elseif($listQueryVideoHit === 3)
$listQueryVideoHit = 0;

if (isset($_GET['url'])) {
// var_dump($_GET['url']); // val1
}
if (isset($_GET['new'])) {
// var_dump($_GET['new']); // val1
}

return "<div class='div_topic_cover topic_cover_".(++$listQueryVideoHit)." reviews'>

<a href=\"".Main::href("video/{$yt->id->videoId}")."?new=".($_GET['new'])."&url=".($_GET['url'])."\" class=\"a_topic_cover\">

</a>
</div>";
}

<a href=\"".Main::href("video/{$yt->id->videoId}")."?new=".($_GET['new'])."&url=".($_GET['url'])."\" class=\"a_topic_cover\">

проверить ($_GET['new']) и ($_GET['url']) если нет, то строку (адрес) вывести как вася.ру/вася

Спасибо!

S
На сайте с 13.11.2012
Offline
72
#29

Пожалуйста, помогите удалить из строки

<a href=\"".Main::href("video/{$yt->id->videoId}")."?new=".$_GET['new']."&url=".($_GET['url'])."\" class=\"a_topic_cover\">

?new= и &url= если в адресной строке нет параметров ".$_GET['new']." и ".($_GET['url'])."

чтобы в адресе не было лишних, пустых параметров вася.ру/вася?new=&url=

Не могу справится, очень много перепробовал и всю функцию переписывал, ничего не помогло.

Пробовал вставить параметры (?new= и &url=) прямо в GET тоже не смог, т.е. хотел, чтобы они появлялись если сработал GET...

НАПРАВЬТЕ В НУЖНОМ НАПРАВЛЕНИИ.

Спасибо!

D
На сайте с 31.01.2017
Offline
15
#30

Smirnof, вам поможет http_build_query

$params = [];

$url = Main::href("video/{$yt->id->videoId}");

if($_GET['new']) {
$params['new'] = $_GET['new'];
}

if($_GET['url']) {
$params['url'] = $_GET['url'];
}

if(!empty($params)){
$url .= '?' . http_build_query($params);
}

В $url сформируется ссылка:

<a href=\"$url\" class=\"a_topic_cover\">

P.S.

Не используйте глобальные переменные (global).

Формирование html из get параметров без проверки/экранирования символов делает вашу страницу уязвимой к xss атаке. http_build_query все опасные символы преобразует автоматически.

А в варианте когда формируете строку сами:

"?new=".urlencode($_GET['new'])

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий