Vbox7 записване на иформацията след play:

bankera1990

Registered
Здравейте имам следният код
Код:
 elseif(substr($value, 0, 22) == "http://vbox7.com/play:" || substr($value, 0, 27) == "http://www.vbox7.com/play:" || substr($value, 0, 17) == "www.vbox7.com/play:" || substr($value, 0, 15) == "vbox7.com/play:") 
						{
							$value = 'vb:'.(int)substr(parse_url($value, PHP_URL_PATH), 1);
						}
който трябва да ми записва цифрите след play: но винаги е 0
тоест vb:0 а аз искам да записва това vb:df255c0f09
 
Хиляди условия при таяя проверка за нищо .. :D Ето как става :)
Код:
$url ="http://vbox7.com/play:df255c0f09";
$id = end(explode(":",$url));

echo $id;
 
bankera1990 каза:
Код:
 $value = 'vb:'.(int)substr(parse_url($value, PHP_URL_PATH), 1);

махни го това (int) - то преобразува всичко до целочислена стойност и нормално в случая като му подаваш текст, получаваш нула.


PHP:
echo (int) "some text here"; //0

echo (int) "db534343"; //0

echo (int) "120 лв"; //120

echo (int) "123.99"; //123

echo (int) "100"; //100 (от string към integer)

А това, което искаш да направиш, можеш да го вземеш с регулярен израз без всички тези проверки, които правиш, независимо от формата на адреса:

PHP:
$url = 'http://vbox7.com/play:df255c0f09';

preg_match('~play:(\w+)~', $url, $matches); 

print_r($matches);

/*

Array
(
    [0] => play:df255c0f09
    [1] => df255c0f09
)

*/

echo $matches[1]; //df255c0f09
 

Горе