Autor Zpráva
Stewe
Profil *
Ahoj, mám html do kterého chci vložit php

dělám to klasicky ale v místě kde je v php uvozovka " tak se zbytek kodu vypíše jako html. Potřebuji radu jak tomu zamezit, aby script proběhl celý.

<?php
$one = array("pes");
?>

Děkuju :)
Fisir
Profil
Escapovat:
<?php
$one = array("p\"e\"s");
?>
(Hodit před uvozovku zpětné lomítko.)
Someone, mně to taky není jasné. Ale mám dojem, že by to mohlo být toto.
Someone
Profil
Mohl bys být prosím konkrétnější? Nejsem si jistý co přesně myslíš... Nejspíš budeš mluvit o escapování, ale v případě kdy neescapuješ uvozovku v řetězci vyskočí ti chyba a ne, že se zbytek vypíše jako HTML.
Tak jsem asi jediný komu to nebylo jasné hned ze začátku.
Stewe
Profil *
Tak ne, zdá se, že to dělá znak > který mám v kodu přesněji je to =>

Na ten ale lomítko neplatí nebo se mi to sním nějak nedaří.
Someone
Profil
Stewe:
Ukaž nám prosím kód, ve kterém se to děje.
Stewe
Profil *
Pokud to chcete konkrétněji je to

$hodnota = array(21 => "Násobek");

Na stránce se mi vypíše všechno od "Násobek"); a níž
Chamurappi
Profil
Reaguji na Stewe:
Tvá stránka ne nezpracovává jako PHP. Do prohlížeče dorazí kód přesně tak, jak jsi ho napsal, a z jeho pohledu sekvencí <?php začíná neznámá procesní instrukce a znakem > končí.
Stewe
Profil *
Myslel jsem že prostor s php je vymezen mezi <?php KOD ?> Jak teda můžu použít => když je to brané jako konec scriptu?
theNookyn
Profil
Chamurappi:
sekvencí <?php začíná neznámá procesní instrukce a znakem > končí

Neni pravda.
panther
Profil
Stewe:
Myslel jsem že prostor s php je vymezen mezi <?php KOD ?>
ano, ale takový kód se zpracuje pouze na serveru, kde je PHP.
Stewe
Profil *
Mám to chápat tak, že vzhledem k tomu, že html je odesíláno přímo uživateli a není hnané přes server, není možné na něm rozběhat komplexní kod vyžadující pracování procesorem serveru?

Musel bych použít koncovku php ? Není jiné řešení?
Someone
Profil
Stewe:
1) Koncovka musí být .php
2) Musí to být na serveru, kde běží PHP (nebo na localhostu, kde máš PHP)
panther
Profil
Stewe:
koncovka .php není nezbytná (de nastavení), ale je... běžně používaná. Takže ano, pro začátečníka určitě (na jiné pojmenování než PHP zapomeň).

Nejjednodušší bude soubory přejmenovat na *.php. A na serveru musí běžet PHP, tedy na domácím počítači to fungovat nebude, dokud si server nenainstaluješ.
Chamurappi
Profil
Reaguji na theNookyna:
Je. Jak jinak vysvětluješ, proč vidí to, co vidí?
theNookyn
Profil
Chamurappi:
Nedokážu to vysvětlit, ale je kravina aby se sám kód ukončil znaménkem >.


Stewe:
Zkusil jsem spustit

<?
$hodnota = array(21 => "Násobek");
print_r($hodnota); //vrátí: Array ( [21] => Násobek )
?>

a na lokálu mi to jde.
Radek9
Profil
theNookyn:
Tady ale nejde o provádění PHP. Chyba je celá v tom, že se PHP neprovede, tudíž prohlížeči přijde na zpracování i PHP kód. Ten ho vezme jako nějaký neznámý tag a ukončí ho nejbližším znakem „>“.
theNookyn
Profil
A nebylo by lepší sem dát celý kód ve kterém je chyba?
Chamurappi
Profil
Reaguji na theNookyna:
Co bychom se z něj dozvěděli? Vždyť víme, v čem je problém.
theNookyn
Profil
Jen jsem to chtěl vidět.
TomasJ
Profil
theNookyn:
Však jsi viděl. Jak už ostatní řekli, Stewe nemá na serveru PHP a tudíž mu to nejde. Dělá to to, co píše Radek9.
<?php
$hodnota = array(21 => "Násobek");
?>
To co je vyznačené mezi označeným < a > nevidí. Vypíše se jen to "Násobek"); ?>, protože na stroji není PHP a úsek mezi < a > je brán jako HTML tag.
margin
Profil *
theNookyn:
Jen jsem to chtěl vidět.
Když to musí být: http://jsfiddle.net/APJhG/

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0