2017-01-16 2 views
-1

Ich muss einen Code schreiben, mit dem ich eine bestimmte Verbindung innerhalb eines Arrays senden kann. Dies ist eine kurze Vorstellung von dem, was ich versuche zu tun. Abhängig vom Ländercode sende ich eine Broschüre in der jeweiligen Sprache. Ich möchte auch wissen, ob ich es durch den Schalter tun ...Wie kann ich einen bestimmten Link in einem Array senden?

Dies ist der Code, den ich so weit gekommen ...

<?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'; 
} 

Wenn ich meinen Code ausführen, ist dies die Ausgabe erhalte ich:

Illegal WARNUNG Offset-Typ auf die Zeilennummer 17

HINWEIS Uninitialized Zeichenfolge offset: 1 auf Zeile Nummer 17

+2

Nun, '$ brochure_link' ist ein String, kein Array, so' $ brochure_link [$ brochure] 'wird einen Fehler verursachen. – roberto06

+0

was erwartest du? es gibt kein Array '$ brochure_link' mit Index' $ brochure_link [$ brochure] ' – C2486

+0

Wenn ich wüsste, wie ich es machen soll, werde ich nicht fragen @Rishi Danke, dass du so höflich bist. Das war nur eine Idee und ich möchte Hilfe, um das Problem zu lösen. – KAZZABE

Antwort

1

Sie Ihr Array machen und eine nicht genutzte "link" Variable

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

Und dann auf diesen Link Variable zugreifen anstelle des Arrays:

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

Dies ist, wo es funktioniert nicht. Unter Verwendung eines Arrays mit dem Namen Schlüssel (auch bekannt als Hash) wäre es einfacher machen:

$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

Danke @sidyll Ich werde diese Fixes machen und versuchen, es erneut zu starten, um zu sehen, wie es geht. Vielen Dank! – KAZZABE

+0

Danke! Ich habe diesen Code wie erklärt verwendet und es hat sehr gut funktioniert. Danke vielmals! @sidyll – KAZZABE

+0

Glücklich, @KAZZABE zu helfen! – sidyll

0

tun so etwas wie dieses

$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]; 
Verwandte Themen