submit html entity bez escapování
- jannemec
- Člen | 78
David Grudl napsal(a):
Entita je vždycky jen zástupce nějakého znaku, napiš přímo ten znak.
Nojo, ale jak zapsat entitu znak – jsou to znaky material-design-icons
fontu …
Sorry našel jsem – v jiném editoru ALT + decimal číslo funguje.
Díky
Editoval jannemec (4. 1. 2020 15:13)
- David Grudl
- Nette Core | 8282
Nebo ctrl-c z tveho postu :-)
Ale nejlepší v PHP řetězci je asi "\u{f342}"
.
- DefenestrationPraha
- Člen | 134
David Grudl napsal(a):
Entita je vždycky jen zástupce nějakého znaku, napiš přímo ten znak.
Narazil jsem na situaci, kdy to není ekvivalentní postup. Snažím se udělat programatickými prostředky (nikoliv zápisem přímo v Latte) Multiselect ve formuláři, ve kterém jsou v jednotlivých options různé vícenásobné whitespaces (kvůli zarovnání).
V takové situaci funguje pouze , kdežto ty whitespaces samotné, vložené napřímo, se prostě nezobrazí.
- DefenestrationPraha
- Člen | 134
Abych uvedl konkrétní příklad: u tohoto multiselectu by bylo esteticky hezké mít ty pomlčky pod sebou. Monospace font zajistí, že šířka písmen je stejná, ale ta mezera před 851 se nezobrazí. Ani, když ji tam vložím jako A0.
<select name="debugging_events[]" size="3" style="font-family: monospace, monospace;" class="form-group form-outline form-control form-select" id="frm-editDebuggingEventSettingsForm-debugging_events" multiple="">
<option value="851"> 851 - Automatic Task Executed Successfully</option>
<option value="1031">1031 - New Traffic Entries Created</option>
<option value="1032">1032 - Logical Processing of Incoming Traffic Finished</option>
</select>
Toto by fungovalo, ale zase to neumožní Latte, které tu entitu odescapuje:
<select name="debugging_events[]" size="3" style="font-family: monospace, monospace;" class="form-group form-outline form-control form-select" id="frm-editDebuggingEventSettingsForm-debugging_events" multiple="">
<option value="851"> 851 - Automatic Task Executed Successfully</option>
<option value="1031">1031 - New Traffic Entries Created</option>
<option value="1032">1032 - Logical Processing of Incoming Traffic Finished</option>
</select>
Uznávám, že jde jen o estetickou drobnost, která nemá závažný dopad na fungování aplikace. Jenom to tahá za oči, no.
Když dělá Latte context-sensitive escaping, možná by toto mohlo taky brát v úvahu. Ne všude jdou entity nahradit přímo zapsaným znakem, bohužel.
Editoval DefenestrationPraha (22. 2. 8:52)
- nightfish
- Člen | 527
@DefenestrationPraha
Vzal jsem tvůj kód
<select name="debugging_events[]" size="3" style="font-family: monospace, monospace;" class="form-group form-outline form-control form-select" id="frm-editDebuggingEventSettingsForm-debugging_events" multiple="">
<option value="851"> 851 - Automatic Task Executed Successfully</option>
<option value="1031">1031 - New Traffic Entries Created</option>
<option value="1032">1032 - Logical Processing of Incoming Traffic Finished</option>
</select>
a vložil jej do Latte. Protože je před „851“ uvnitř
<option>
(obyčejná) mezera, tak je očekávatelně ignorována.
Když je nahradím za nezalomitelnou mezeru (Alt+0160
; nebo
také A0
, jak jsi psal výše), tak se, opět podle očekávání,
mezera před „851“ zachová. Verze Latte 3.0.20.
- DefenestrationPraha
- Člen | 134
Ty brďo, magie. Díky!
Já jsem předtím zkoušel zkopírovat tu NBSP z různých ASCII tabulek na internetu, asi to holt nekopírovalo totéž. Případně \u{00a0} přímo ve stringu.