Autor Zpráva
ForestCZE
Profil
Zdravím, potřeboval bych pomoct.

Mám funkci:

<?php
function TextMailu($mtext){
    $pm = "<html>";
    $pm .= "<body>";
    $pm .= "<strong>".$mtext[0]."</strong>";
    $pm .= "</body>";
    $pm .= "</html>";
    return $pm;
}

A v jiném souboru odesílám mail takto:

<?php
$hlavicka  = 'MIME-Version: 1.0'."\r\n";
$hlavicka .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
$hlavicka .= 'From: test@test.cz';

Mail("ja@ja.cz", "Zkouška html mailu", TextMailu("123456"), $hlavicka);

Cílem je, že mi to pošle text 123456 tučně. E-mail příjde v pořádku, ale místo 123456, mi přijde pouze první znak, tj. 1.

Neví někdo, kde mám chybu? Děkuju.
Chro
Profil
$mtext[0] - vypíše 1. znak
$mtext[1] - vypsalo by 2. znak
$mtext - vypíše plný obsah
ForestCZE
Profil
Chro:
Tak teď úplně nechápu. Proměnná $mtext není v explode. Ta proměnná je jako parametr funkce, která se chová jako pole, takže $mtext[0] je obsah toho, co je v prvním indexu pole, ne? Nebo se pletu?
Chro
Profil
Pokud je $mtext typu string, pak $mtext[0] bude obsahovat 1. znak stringu, pole nepole. Vychytávka PHP.
ForestCZE
Profil
Chro:
No fajn. A jak bych to měl teda upravit? Díky.
Chro
Profil
Jednoduše nahradit $mtext[0] ve vlastní funkci za $mtext.
ForestCZE
Profil
Chro:
Jojo, díky moc, už to běží. Ale stejně mi to hlava nebere. Napíšu jiný příklad ...

function Neco($data) 
{
$text = "text1:".$data[0];
$text .= "text2:".$data[1];
$text .= "text3:".$data[2];
return $text
}

A pak si zavolám zavolám funkci:

echo Neco("Dnes", "je", "čtvrtek");

Tak výstupem by mělo být:

text1: Dnes
text2: je
text3: čtvrtek

Tak kde je ten fail? :-D
Chro
Profil
A teď? xD
echo Neco(array("Dnes", "je", "čtvrtek"));
PHP přistupuje jinak k položkám pole, je-li to pole, a ke znakům řetězce, je-li to řetězec. A kód může mít klidně stejný zápis v obou případech. V to je ten "fail".
ForestCZE
Profil
Chro:
Aha, takže ono to s tou nulou normálně funguje, ale mělo to být takto:

function TextMailu($mtext){
    $pm = "<html>";
    $pm .= "<body>";
    $pm .= "<strong>".$mtext[0]."</strong>";
    $pm .= "</body>";
    $pm .= "</html>";
    return $pm;
}

Mail("info@filipnemec.cz", "Zkouška html mailu", TextMailu(array("ahoj")), $ochrana);

Vůbec mi to s tím array nedocvaklo xDDD
Chro
Profil
Mimochodem, dle specifikace xD by měla každá položka hlavičky mailu obsahovat nový řádek (\r\n) na konci. A to i ta poslední. xD
ForestCZE
Profil
Chro:
i ta poslední. xD
Fakt? xDD
Chro
Profil
Nedrážděme moderátory. )) I ta poslední, v tvém případě 'From: ...'." \r\n"

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: