2017-01-16 3 views
-1

Мне нужно написать код, который позволяет мне отправлять определенную ссылку внутри массива. Это краткое представление о том, что я пытаюсь сделать. В зависимости от кода страны я отправлю брошюру на конкретном языке. Я также хотел бы знать, если я могу сделать это с помощью переключателя ...Как мне отправить определенную ссылку в массив?

Это код, который я получил до сих пор ...

<?php 
$de_brochure = ('https://ruta/de-brochure.pdf'); 
$en_brochure = ('https://ruta/en-brochure.pdf'); 
$es_brochure = ('https://ruta/es-brochure.pdf'); 
$country_code = 'ES'; // Normally I get this code from a form. 
$brochure = array ($de_brochure, $en_brochure, $es_brochure); 
$brochure_link = ''; 

if ($country_code == 'ES') { 
    $to = '[email protected]'; 
    $subject = 'Ejemplo'; 
    $txt = 'El dossier a enviar es' . $brochure_link[$brochure]; 
    $headers = 'De: [email protected]' . '\r\n' . 
'CC: [email protected]'; 
    mail ($to, $subject, $txt, $headers); 
} else { 
    echo $country_code . 'no es el código de españa'; 
} 

Когда я запускаю мой код, это выход I GET:

ПРЕДУПРЕЖДЕНИЕ Нелегальная тип смещения на номер строки 17

УВЕДОМЛЕНИЕ Неинициализированная строка смещения: 1 на номер строки 17

+2

Ну, '$ brochure_link' является строкой, а не массив, поэтому' $ brochure_link [$ brochure] 'приведет к ошибке. – roberto06

+0

что вы ожидаете? нет массива '$ brochure_link' с индексом' $ brochure_link [$ brochure] ' – C2486

+0

Если бы я знал, как это сделать, то я не буду спрашивать @Rishi Спасибо за то, что он вежлив. Это была просто идея, и я хочу помочь решить проблему. – KAZZABE

ответ

1

Вы делаете свой массив и неиспользованную «ссылка» переменной

$brochure = array ($de_brochure, $en_brochure, $es_brochure); 
$brochure_link = ''; 

А затем получить доступ к этой переменной ссылку вместо массива:

$txt = 'El dossier a enviar es' . $brochure_link[$brochure]; 
            ^^^^^^^^^^^^^^^^^^^^^^^^^ 

Это где это не удается. Использование массива с именованными ключами (так называемый хэш) облегчат:

$brochures = [ 
    'DE' => 'https://ruta/de-brochure.pdf', 
    'EN' => 'https://ruta/en-brochure.pdf', 
    'ES' => 'https://ruta/es-brochure.pdf' 
]; 

$country_code = 'ES'; 

# ... 

$txt = 'El dossier a enviar es' . $brochures[$country_code]; 
+0

Спасибо @sidyll Я сделаю эти исправления и попытаюсь запустить его снова, чтобы посмотреть, как это происходит. Спасибо! – KAZZABE

+0

Спасибо! Я использовал этот код, как объяснялось, и он работал очень хорошо. Большое спасибо! @sidyll – KAZZABE

+0

Счастливые помочь @KAZZABE! – sidyll

0

сделать что-то вроде этого

$brochure_link_arr= array(
"DE"=>'https://ruta/de-brochure.pdf', 
"EN" =>'https://ruta/en-brochure.pdf', 
"ES"=> 'https://ruta/es-brochure.pdf' 
); 

if ($country_code == 'ES') { 
.. 
$txt = 'El dossier a enviar es' . $brochure_link_arr[$country_code]; 
Смежные вопросы