2011-02-16 4 views
0

В моем PHP-коде мне нужно вызвать скрипт и передать ему некоторые аргументы. Как передать php-переменные (в качестве аргументов)?PHP: передача переменных php в качестве аргументов?

$string1="some value"; 
$string2="some other value"; 
header('Location: '...script.php?arg1=$string1&arg2=$string2'); 

благодаря

+1

It должен работать точно так, как вы показываете (если это допустимая строка, для которой вам нужно будет удалить второй '' ') –

ответ

4
header('Location: ...script.php?arg1=' . $string1 . '&arg2=' . $string2); 
+0

Не стоит новый ответ, но также возможны двойные кавычки:' header ("Location: http: //example.com/script.php?arg1=$string1&arg2=$string2 ");' – KingCrunch

+0

Аргументы должны быть 'urlencode'd –

0

Как это:

header("Location: http://www.example.com/script.php?arg1=$string1&arg2=$string2"); 
0

Он должен работать, но обернуть UrlEncode() упаковывает есть что-нибудь смешное нарушение URL:

header('Location: '...script.php?'.urlencode("arg1=".$string1."&arg2=".$string2).'); 
4

Либо через конкатенацию строк:

header('Location: script.php?arg1=' . urlencode($string1) . '&arg2=' . urlencode($string2)); 

Или строка интерполяции

$string1=urlencode("some value"); 
$string2=urlencode("some other value"); 
header("Location: script.php?arg1={$string1}&arg2={$string2}"); 

Лично я предпочитаю второй стиль. Это намного проще на глазах и меньше шансов на неуместную цитату и/или ., и с любым достойным редактором подсветки синтаксиса переменные будут окрашены по-другому, чем остальная часть строки.

UrlEncode() часть требуется, если ваши ценности имеют какой-либо URL-метасимволов в них (пробелы, амперсанд, и т.д ...)

3

Вы можете использовать функцию http_build_query

$query = http_build_query(array('arg1' => $string, 'arg2' => $string2)); 

header("Location: http://www.example.com/script.php?" . $query); 
Смежные вопросы