2016-01-22 2 views
0

Как я могу отображать последние числа перенаправленного URL-адреса в php?Показать последние номера ссылки REDIRECTED

с перенаправлены, я имею в виду что-то вроде этого

$nick=$_GET['nickname']; 
$url='http://es.cheese.formice.com/mouse/' . $nick . ''; 

Например, если URL является script.php? Ник = Skyleter, будет http://es.cheese.formice.com/mouse/Skyleter, проблема в том, что перенаправляет http://es.cheese.formice.com/mouse/Skyleter.17529827, (попробуйте сами), поэтому я хочу отобразить числа перенаправленного URL-адреса.

Wich, для меня 17529827

ли это возможно?

Пожалуйста, не говорите «последние 8 цифр», как $ variable = substr ($ url, -8); , поэтому каждый ник имеет разный идентификатор.

Также нехорошо показывать пользовательскую ошибку при вводе значения. [script.php, а не script.php? nick = nick]

По умолчанию отображается индекс undefinex.

Спасибо!

+0

Что находится в форме html? – Phiter

+0

' – Skyleter

+1

Хорошо проверьте мой ответ. – Phiter

ответ

1

Поскольку этот URL будет перенаправлять вас, вам нужно будет использовать завиток, чтобы получить следующий.

Это будет работать:

<?php 
$nick='Skyleter'; //$_GET['nickname']; 
$url='http://es.cheese.formice.com/mouse/' . $nick; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, TRUE); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$a = curl_exec($ch); 
if(preg_match('#Location: (.*)#', $a, $r)) 
$l = trim($r[1]); 

$user_id = end((explode('.', $l))); 
echo $user_id; 
?> 

Он взрывает строку в последней точке (.), которая является то, что идет прямо перед ID.

+0

Спасибо ** TON **, он отлично работал! : D U помог мне в тон, я обыскал это часами – Skyleter

2

Если это всегда будет число, вы можете использовать filter_var, чтобы легко вытащить их.

$url = 'http://es.cheese.formice.com/mouse/Skyleter.17529827'; 
$id = filter_var($url, FILTER_SANITIZE_NUMBER_INT); 

echo $id; // 17529827 

Если псевдоним содержит цифры, это не сработает. Если формат остается таким образом (всегда заканчивается точкой и набором чисел), то, я думаю, вы могли бы использовать pathinfo и читать это как расширение вашего пути.

$urlParts = pathinfo('http://es.cheese.formice.com/mouse/Skyleter1111.17529827'); 
echo $urlParts['extension']; 
+0

Что делать, если псевдоним содержит числа? И как вы получаете идентификатор? – Phiter

+0

Хм, тогда это не сработает для вас, так как функция будет включать эти числа. – georaldc

+0

См. Мое редактирование для другого метода извлечения этих чисел – georaldc

Смежные вопросы