Punta de Choros

27 декември 2009

На 2009г й оставаха 120ч съществуване. От календара падна поредния лист с дата 27 декември и към 10.30ч сутринта ме събуди звън от телефона.

Инсталация на Microsoft шрифтове в Ubuntu 16.04

14 януари 2017

нсталация на Microsoft шрифтове в Ubuntu се поражда от идеята браузърите в различните системи, да показват еднакво текстовото съдържанието на интернет страниците.

Ubuntu 16.04 инсталация на USB disk on Key

19 ноември 2016

Арсеналът ми от мобилни компютри съдържа Fujitsu Lifebook AH530. Това е бюджетна машина от 2011г на Intel Core i5-480M процесор и 4GB DDR3 RAM памет.

gparted

Paragon ExtFS for Windows

30 юли 2016

ExtFS for Windows е утилита на Paragon Software разработена през 2013г. Тя представлява решение, предоставящо пълен достъп на четене и на запис до раздели ...

msvcr100.dll is missing Windows 10

04 октомври 2016

Майк Патерсън от Plixer, компания по компютърната сигурност, публикува доклад , че Windows 10 изпраща данни в криптиран вид от вашата машина на всеки пет минути. Той е направил максимума, за да спре изтичането, но системата продължавала да изпраща информация.


Мигрирането към Ubutnu ми носи само наслада. В последните две години аз публикувам в блога тук само от тази система. Случва се да показвам код и за целта ползвам този on-line конвертор. Работата с него обаче е пипкава, изисква време за обработка, друг път не отговаря. Споходи ме идея да си направя подобен конвертор на моята машина. В Ubuntu демон Apache винаги е вдигнат, а PHP налице. Тогава смело напред.

Чайковски - Славянски марш

теория за редове, съдържащи html-код

Доста често публикувам код, съдържаш html-тагове. Кодът се обработва от браузъра и прави тези html-тагове невидими. Това му е предназначението, да интерпретира всички html-тагове в съответствие с стандартите на HTML. Съгласете се никак не е удобно, всеки път да ровим изходния код от "задната страна" на браузъра в желанието си да узнаем как са постигнати нещата. Налага се да покажем задния двор отпред, тоест, да публикувам html-таговете, така, че те да не бъдат форматирани. За целта умни хора са създали функция htmlspecialchars().

Функция htmlspecialchars() приема три параметъра и по-обстойно за нея от документацията на PHP. Тази функция превежда специалните символи, например:
«<», «>», «&», «"» , «'»

в техните същности на език HTML, съответно:
«&lt;», «&gt;», «&», «&quot;» , «'»

Трудно е да се нарече език, но това е тема за друг разговор и за собствено удобство нарушавам правилото..

Функция htmlspecialchars() прекодира най-често използваните спецсимволи. Ако се налага конвертиране на всички символи в техните HTNL същности се прибягва до функция htmlentities().

С думи прости, тази функция гарантира, че ако решите да напишете произволен код (php, javascript, html и т.н.), то той ще се изобрази нормално от браузъра, но няма да се изпълни.

практика - Profruit htmlspecialcharts конвертор

Първо създавам нов каталог в root директорията на Apache - /var/www/htmlspecialcharts и вътре помествам два php файла. Главен индекс, съдържащ формата и обработчик.

root директорията на Apache

Практическото изпълнение на конвертора. В ляв таб конвертитам кода, за да го публикувам тук в поредната си тема. Удобно, нали?

Profruit htmlspecialcharts конвертор


Код на индекс php файл
<?php
    session_start();
    if(empty($_SESSION)){$_SESSION['msg'] = null;}
?>
<!DOCTYPE html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>Конвертор</title>
 </head>
 <body bgcolor="#F7FBFC">
     <h3>Въведи кода</h3>
   <form action="processor.php" method="POST">
    <p><textarea cols="80" rows="20" name="msg"><?=$_SESSION['msg']  ?></textarea></p>
    <p><input type="submit" value="конвертирай"> <input type="button" value="изчисти" onClick="window.location.reload()"></p>
   </form>
     
<?php
    unset($_SESSION['msg']);
    session_destroy();
?>
 </body>
</html>

Кодът, който виждате е благодарение на конвертора и това е идеята му, ОК? А от снимката над него придобивате представа как ще изглежда. Спартански вид и повече не е нужно, затова без стилове.

Замисълът е полето на формата да приема и пак там да връща. За целта ползвам сесия, която след визуализиране убивам. Бутон изчисти се управлява от JavaScript. Всяко натискане чисти напълно полето и презарежда страницата, така гарантирам чиста форма за пореден код. В самото начало проверявам глобален масив $_SESSION за съдържание и при липса, унищожавам променливата $_SESSION['msg'], после JavaScript и всичко ток, и жици.

Код на обработчик php файл
<?php
session_start();
if (isset($_POST)){
    $msg = trim($_POST['msg']);
    $msg = htmlspecialchars($msg);
    $msg = str_replace('&', '&amp;', $msg);
    $msg = str_replace('&amp;amp;', '&amp;', $msg);
    $_SESSION['msg'] = $msg;
    header('Location: index.php');
    exit; 
 }
else{
    header('Location: index.php');
 }
Поредицата функции постигат желаното. С trim() режа празни символи, дошли от копиране. Резултата подавам на htmlspecialchars(). Тя връща същностите. Резултатът от нея не е достатъчен и необходима още една конвертация, която полагам на функция str_replace(). Презастраховам се от двойно натискане на бутон конвертирай и пак през същата функция с леки изменения. Защо? Защото това е домашно.

Крайният резултат закачаме на променлива $_SESSION['msg'] и пренасочваме обратно към индекса.

На печелившите честито. На мен браво!





до нови срещи   ^.^

12.11.2011 profruit 

1 Response to "htmlspecialchars конвертор"

  1. Славчо Said,

    Благодаря на "Любчо Профруит" за добрите статии в блога !!
    Тхумбс уп дето се казва . :)

     

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: Ubuntu, WEB, Photoshop, Фотография, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога