Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Nefunkční include v PHP

Mám v kódu:

$words = [
    'ramín',
    'koureni',
    'Aktuální',
    'kourení',
    'kouření',
];

Když dám místo toho <?php include 'zakazanaslova.php';?> a obsah (kód výše) vložím do zakazanaslova.php , tak mě to napíše stránka nedostupná a přestane to fungovat. Co dělám špatně? Děkuji za odpověď

Změna kategorie, původně: Ostatní (host)
Změna předmětu, původně: Nefunkční include (host)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
A jakou stránku (adresu) otevíráš v prohlížeči? Máš to u sebe na lokálu nebo na serveru?
host 02.11.2021 06:54
host
U sebe
Lojzaaa 02.11.2021 06:55
Lojzaaa
Jde mě o to že mám v několika PHP kódech $words = [ 'ramín', 'koureni', 'Aktuální', 'kourení', 'kou…
Lojzaaa 02.11.2021 06:57
Lojzaaa
Já to chápu, o co ti jde. Neodpověděl jsi, jakou otevíráš URL adresu? Případně jak a kam ten includ…
host 02.11.2021 07:19
host
Ještě jinak. Dám dvakrát stejný kód do stránky a ono to přestane fungovat. Jeden kód jde, ale dva na…
Lojzaaa 02.11.2021 08:20
Lojzaaa
Tak mít dvakrát ten samý kód není úplně normální. A nebo jsem nepochopil, jak to myslíš.
Wikan 02.11.2021 08:24
Wikan
Ano, potřebuji tento kód na stránce 2x na různých místech. Menit si text 'prvni' a 'druhy'. Jednou…
Lojzaaa 02.11.2021 08:28
Lojzaaa
Jakmile máš na stránce (nebo i v celém projektu) něco dvakrát či vícekrát, tak je to prakticky vždy…
Wikan 02.11.2021 08:36
Wikan
Funguje mě to když nechám kód jednou a pak vkládám na místa jen toto, může to tak být? To mě funguje…
Lojzaaa 02.11.2021 08:42
Lojzaaa
Může.
Wikan 02.11.2021 08:53
Wikan
Ono mě to funguje nakonec jen hned vedle toho kódu. Když to dám na místo co potřebuji tak je stránka…
Lojzaaa 02.11.2021 08:54
Lojzaaa
Jak to mám tedy změnit aby to fungovalo prosím?
Lojzaaa 02.11.2021 09:35
Lojzaaa
Těžko říct. Nesdělil jsi, co přesně děláš.
Wikan 02.11.2021 09:37
Wikan
Potřebuji z toho kódu v odpovědi #5 vypsat na několika místech na stránce: if (wordsCheck($words, $…
Lojzaaa 02.11.2021 09:41
Lojzaaa
Ale na to jsem se neptal. Psal jsi, že jsi udělal "něco" po čem už to nefunguje. Co je to to "něco"?…
Wikan 02.11.2021 09:55
Wikan
Jo aha. Promiň. Když dám hned pod ten kód toto: <!-- PHP --> if (wordsCheck($words, $inputs) === fa…
Lojzaaa 02.11.2021 09:59
Lojzaaa
Nefunguje to z toho dôvodu, že na tom inom mieste je funkcia wordsCheck neznáma. Takisto keď si to c…
pozorovateľ 02.11.2021 10:13
pozorovateľ
To je pravda už to funguje paráda. poslední
Lojzaaa 02.11.2021 11:02
Lojzaaa

Ještě jinak. Dám dvakrát stejný kód do stránky a ono to přestane fungovat. Jeden kód jde, ale dva na stránce ne. Co tam tedy změnit aby to fungovalo na stránce 2x tento kód níže?

<center>
<!-- PHP -->
function wordsCheck($words, $inputs) {
    $expression = '~(' .implode('|', array_map(function ($v) { return preg_quote($v, '~'); }, $words)). ')~iu';
    
    foreach ($inputs as $haystick) {
        if (preg_match($expression, $haystick) === 1) {
            return true;
        }
    }
    return false;
}
 
$words = [
'cur',
'čůr',
'čúr',
'mrt',
'gynek',
'erek',
'pochv',
'vagi',
'vagy',
'hotens',
'připus',
'pripus',
'samic',
'samyc',
'marih',
'pohlav'
];

$inputs = array_merge([$context['TOPIC_TITLE']], array_map(function ($v) { return $v['MESSAGE']; }, $context['postrow']));
 
if (wordsCheck($words, $inputs) === false) {
echo 'prvni';
} else {
echo 'druhy';
}
<!-- ENDPHP -->
</center>

Jo aha. Promiň.
Když dám hned pod ten kód toto:

<!-- PHP -->
if (wordsCheck($words, $inputs) === false) {
echo '111';
} else {
echo '222';
}
<!-- ENDPHP -->

tak to funguje dobře, ale když to dám třeba nahoru nebo dolu do stránky, tak to nefunguje a stránka se nenačte.

Nefunguje to z toho dôvodu, že na tom inom mieste je funkcia wordsCheck neznáma.
Takisto keď si to celé dával dvakrát bol problém v tom, že si chcel rovnakú funkciu definovať dva krát.
Z toho vyplýva, že definícia funkcie aj toho poľa musí byť niekde na začiatku. Potom ti už stačí vkladať len ten kúsok rozhodovacieho kódu kdekoľvek za ňou.

Zpět do poradny Odpovědět na původní otázku Nahoru