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

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

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

Заработало только после того, как я закрыл $params = []; Parse error: syntax error, unexpected


//$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);
}

это не является ошибкой?

Обратил внимание, что ссылки стали иметь знаки

https%3A%2F%2F вместо https:// - это и есть проверка/экранирования? Такие ссылки нормально индексируются?

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

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

$params = []; // работает начиная с PHP 5.4

замените на:

$params = array();

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

Smirnof:

Обратил внимание, что ссылки стали иметь знаки
https%3A%2F%2F вместо https:// - это и есть проверка/экранирования? Такие ссылки нормально индексируются?

Так быть не должно если это не get параметр.

Если выглядит так:

http://site.abc/video?url=https%3A%2F%2F...

то все в порядке

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

Спасибо!

Выглядит именно так http://site.abc/video?url=https%3A%2F%2F...

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

Пожалуйста, помогите исправить ошибку.

Поменял сервер, на новом php выше чем у прежнего.

Появилась ошибка Parse error: syntax error, unexpected '$itemtitle' (T_VARIABLE) in

в коде


<?php
$js=file_get_contents('https://glopart.ru/ads/adunit/4031/script.js');
if(preg_match('#push\((?<json>.*?)\);#',$js,$match)){
$wares=json_decode($match['json'])->wares;
foreach ($wares as $item) {
//$itemtitle=str_replace('"', "'", $item->title);
$arr1 = array('"', ' ', '#', '«', '»', '%', '/');
$arr2 = array("", '+', '', '&laquo;', '&raquo;', '%25', '%2F')
$itemtitle=str_replace($arr1, $arr2, $item->title);
echo '<div class="div_most_commented_item">';
echo '<a href="/search/'.$itemtitle.'?new='.$itemtitle.'&url='.$item->url.'" class="blue3">';
echo '<div class=div_table><div class=div_row>';
echo '<div><span>'.$item->title.'</span></div></div></div></a></div>';
}
}
?>

Пробовал над foreach ($wares as $item) {

вставить $itemtitle = "";

не помогло, помогите исправить.

---------- Добавлено 09.02.2017 в 22:08 ----------

Вставил тот же код но из другого файла, все заработало.

дани мапов
На сайте с 06.09.2012
Offline
204
#35

Забыли поставить точку с запятой


$arr2 = array("", '+', '', '&laquo;', '&raquo;', '%25', '%2F');//<------------------
$itemtitle=str_replace($arr1, $arr2, $item->title);
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
S
На сайте с 13.11.2012
Offline
72
#36

дани мапов, точно.

Спасибо!

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

Хотел поинтересоваться, можно ли запретить загрузку js из подгружаемого ($js=file_get_contents) js

https://glopart.ru/ads/adunit/1443/script.js


<?php
$js=file_get_contents('https://glopart.ru/ads/adunit/1443/script.js');
if(preg_match('#push\((?<json>.*?)\);#',$js,$match)){
$wares=json_decode($match['json'])->wares;
foreach ($wares as $item) {
//$itemtitle=str_replace('"', "'", $item->title);
$arr1 = array('"', ' ', '#', '«', '»', '%', '/');
$arr2 = array("", '+', '', '&laquo;', '&raquo;', '%25', '%2F')
$itemtitle=str_replace($arr1, $arr2, $item->title);
echo '<div class="div_most_commented_item">';
echo '<a href="/search/'.$itemtitle.'?new='.$itemtitle.'&url='.$item->url.'" class="blue3">';
echo '<div class=div_table><div class=div_row>';
echo '<div><span>'.$item->title.'</span></div></div></div></a></div>';
}
}
?>

11 строка на скрине ниже

Спасибо!

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

'.urlencode($itemtitle).' не удаляет из строки такие знаки ★☁

преобразует их в код %E2%98%85%E2%98%81

как вообще удалить подобные знаки?

Может так изменить:

$arr1 = array('(', ')', '{', '}', ':', '-', '[', ']', '"', ' ', '/', '#');

$arr2 = array('', '', '', '', '', '+', '', '', '', '+', '+', '');

$itemtitle=str_replace($arr1, $arr2, $item->title);

но что прописать?

Спасибо!

Здесь перепробовал все функции ничего не получилось.

Мне нужно в результате получить чистую строку без всевозможных знаков "красоты" ★☁

★☁ Music Club ☁★ Dance music и на русском☁★.

надо: Music Club Dance music и на русском

чтобы потом этот запрос отправить в поиск.

Функция urlencode здорово помогла с пробелами и другими знаками, но urlencode не удаляет "красоту" ☁★ из-за чего запрос в поиск идет кривой :(

Как быть?

1 234

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