{"id":3457,"date":"2016-01-18T08:53:50","date_gmt":"2016-01-18T11:53:50","guid":{"rendered":"http:\/\/blog.dialhost.com.br\/?p=3457"},"modified":"2016-01-18T08:53:50","modified_gmt":"2016-01-18T11:53:50","slug":"heredoc-e-nowdoc-tratamento-de-strings-com-php","status":"publish","type":"post","link":"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/","title":{"rendered":"heredoc e nowdoc &#8211; tratamento de strings com PHP"},"content":{"rendered":"<figure id=\"attachment_3502\" aria-describedby=\"caption-attachment-3502\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"size-full wp-image-3502\" src=\"http:\/\/blog.dialhost.com.br\/wp-content\/uploads\/2016\/01\/heredoc.jpg\" alt=\"heredoc e nowdoc\" width=\"700\" height=\"260\" \/><figcaption id=\"caption-attachment-3502\" class=\"wp-caption-text\">Exemplo de utiliza\u00e7\u00e3o do heredoc<\/figcaption><\/figure>\n<p>Hoje despedimos da s\u00e9rie de posts sobre tratamento de strings com PHP mostrando dois comandos que auxiliam bastante, principalmente na leitura do c\u00f3digo programado. Estou falando do heredoc e do nowdoc. Estes dois comandos s\u00e3o formas de representa\u00e7\u00e3o de strings, assim como os delimitadores de aspas simples e duplas, mais comumente utilizado.<\/p>\n<p>Mas, por que utiliz\u00e1-los ao inv\u00e9s das t\u00e3o pr\u00e1ticas aspas? Posso definir sua utilidade por 3 motivos:<\/p>\n<ol>\n<li>Praticidade<\/li>\n<li>F\u00e1cil leitura<\/li>\n<li>F\u00e1cil manuten\u00e7\u00e3o<\/li>\n<\/ol>\n<h2>O que \u00e9 e como usar o heredoc<\/h2>\n<p>O heredoc permite voc\u00ea trabalhar com blocos de textos maiores sem se preocupar em escapar aspas duplas ou simples. Isto porque ele utiliza um demarcador &#8220;tagueado&#8221; identificando o come\u00e7o e no final de cada string. Ele, assim como a aspas duplas, permite que voc\u00ea trabalhe com vari\u00e1veis dentro da string. O heredoc ir\u00e1 interpretar a var\u00edavel perfeitamente, sem concatena\u00e7\u00f5es e etc.<\/p>\n<p>Para utiliz\u00e1-lo voc\u00ea inicia o bloco de texto \u00a0com uma sequ\u00eancia de tr\u00eas sinais de menor e ent\u00e3o identifique o bloco com um nome qualquer, <em>&lt;&lt;&lt;html, <\/em>por exemplo. A partir da\u00ed tudo que voc\u00ea escrever ser\u00e1 considerado como um string. Veja o exemplo abaixo:<\/p>\n<pre class=\"brush: php; gutter: true\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n\t&lt;meta charset=&quot;utf-8&quot;&gt;\n\t&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;\n\t&lt;title&gt;&lt;\/title&gt;\n\t&lt;link rel=&quot;stylesheet&quot; href=&quot;&quot;&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n&lt;?php\n\t$seu_nome = &quot;Felipe Moraes&quot;;\n\t$endereco = &quot;R. Josefina alves, 45, Macei\u00f3, AL.&quot;;\n\t\n\t\/\/Este seria o c\u00f3digo com aspas duplas\n\t$html = &quot;&lt;div id=\\&quot;ola\\&quot;&gt;\n    \t&lt;p&gt;Ol\u00e1 {$seu_nome},&lt;\/p&gt;\n    \t&lt;p&gt;Que tal visitar a gente em nossa sede: {$endereco}?&lt;\/p&gt;\n  \t&lt;\/div&gt;&quot;;\n\t\n\techo &quot;&lt;h2&gt;com aspas:&lt;\/h2&gt;&quot;.$html;\n\t\n\t\/\/Este seria o c\u00f3digo com heredoc\n\t$html = &lt;&lt;&lt;HTML\n  \t&lt;div id=&quot;ola&quot;&gt;\n\t    &lt;p&gt;Ol\u00e1 {$seu_nome},&lt;\/p&gt;\n    \t&lt;p&gt;Que tal visitar a gente em nossa sede: {$endereco}?&lt;\/p&gt;\n  \t&lt;\/div&gt;\nHTML;\n\n\techo &quot;&lt;h2&gt;com heredoc:&lt;\/h2&gt;&quot;.$html;\n\n?&gt;\n\t\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n<p>Alguns detalhes que \u00e9 preciso saber ao utilizar o heredoc \u00e9 que caso necessite do car\u00e1cter $ voc\u00ea precisar\u00e1 escap\u00e1-lo j\u00e1 que o heredoc identifica vari\u00e1veis. Outra coisa \u00e9 que para finalizar o bloco de texto voc\u00ea deve repetir o nome que identifica o heredoc na linha abaixo do texto. E voc\u00ea n\u00e3o deve ser indentar a linha de t\u00e9rmino para que tudo funcione perfeitamente.<\/p>\n<p>Utilizei tamb\u00e9m algumas chaves para identificar as vari\u00e1veis. Isto n\u00e3o \u00e9 obrigat\u00f3rio, mas, auxilia na leitura do c\u00f3digo e como este \u00e9 um dos motivos de se utilizar o heredoc, vamos fazer direito.<\/p>\n<h2>E agora o nowdoc<\/h2>\n<p>O nowdoc tem utiliza\u00e7\u00e3o bem semelhante ao heredoc, por\u00e9m, ele n\u00e3o consegue interpretar vari\u00e1veis ou caracteres de controle. Este comando \u00e9 compat\u00edvel a partir do php 5.3. Para utiliz\u00e1-lo segue a mesma l\u00f3gica, com um pequeno detalhe, aqui o identificador inicial deve ter aspas simples, &lt;&lt;&lt;&#8216;HTML&#8217;. Veja o exemplo:<\/p>\n<pre class=\"brush: php; gutter: true\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n\t&lt;meta charset=&quot;utf-8&quot;&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n&lt;?php\t\n\t\/\/Este seria o c\u00f3digo com aspas simples\n\t$html = &#039;&lt;div id=\\&#039;ola\\&#039;&gt;\n    \t&lt;p&gt;Ol\u00e1 Felipe,&lt;\/p&gt;\n    \t&lt;p&gt;Que tal vir comer um queijo com a gente?&lt;\/p&gt;\n  \t&lt;\/div&gt;&#039;;\n\t\n\techo &quot;&lt;h2&gt;com aspas:&lt;\/h2&gt;&quot;.$html;\n\t\n\t\/\/Este seria o c\u00f3digo com nowdoc\n\t$html = &lt;&lt;&lt;&#039;HTML&#039;\n  \t&lt;div id=&quot;ola&quot;&gt;\n\t    &lt;p&gt;Ol\u00e1 Felipe,&lt;\/p&gt;\n    \t&lt;p&gt;Que tal vir comer um queijo com a gente?&lt;\/p&gt;\n  \t&lt;\/div&gt;\nHTML;\n\n\techo &quot;&lt;h2&gt;com heredoc:&lt;\/h2&gt;&quot;.$html;\n\n?&gt;\n\t\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n<p>\u00c9 poss\u00edvel utilizar o nowdoc para incluir um c\u00f3digo PHP dentro do seu c\u00f3digo php, assim voc\u00ea mant\u00e9m a organiza\u00e7\u00e3o sem que nenhum c\u00f3digo seja executado. Repare tamb\u00e9m que apesar do identificador inicial vir com aspas simples o final n\u00e3o necessita.<\/p>\n<p>Concluindo, estas duas formas s\u00e3o muito amig\u00e1veis para trabalhar com blocos de textos grandes e que envolvem c\u00f3digo e texto. N\u00e3o que eles substituam as boas e velhas aspas simples e duplas, ainda utilizaremos elas muitas vezes para blocos pequenos e simples. Mas, sem d\u00favida nenhuma trabalhar com heredoc ou nowdoc torna a leitura e escrita de uma string de c\u00f3digos extensa, muito mais simples.<\/p>\n<div class=\"publicidade\">\n<div id=\"texto\">Tenha todo o desempenho para o seu site com a Hospedagem Cloud DialHost. Servidores em cloud prontos para receber sites em PHP. <a title=\"Hospedagem Cloud DialHost\" href=\"http:\/\/www.dialhost.com.br\/hospedagem-de-sites\/hospedagem-cloud?utm_source=dialhost-blog&amp;utm_medium=link-post-blog&amp;utm_campaign=publicidade-blog\" target=\"_blank\" rel=\"noopener noreferrer\">Saiba Mais<\/a> ou <a href=\"http:\/\/www.dialhost.com.br\/?utm_source=dialhost-blog&amp;utm_medium=link-post-blog&amp;utm_campaign=publicidade-blog\">veja nossos produtos<\/a>.<\/div>\n<\/div>\n<div class=\"clear\"><\/div>\n<p>&nbsp;\t\t\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\t\t\t\theredoc e do nowdoc s\u00e3o dois s\u00e3o duas formas de representa\u00e7\u00e3o de strings, assim como os delimitadores de aspas simples e duplas, mais comumente utilizados.\t\t\t\t<\/p>\n","protected":false},"author":1,"featured_media":3501,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[24,12],"tags":[76,112,167,168,195],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>heredoc e nowdoc - tratamento de strings com PHP - Blog DialHost<\/title>\n<meta name=\"description\" content=\"heredoc e do nowdoc s\u00e3o dois s\u00e3o duas formas de representa\u00e7\u00e3o de strings, assim como os delimitadores de aspas simples e duplas, mais comumente utilizados.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"heredoc e nowdoc - tratamento de strings com PHP - Blog DialHost\" \/>\n<meta property=\"og:description\" content=\"heredoc e do nowdoc s\u00e3o dois s\u00e3o duas formas de representa\u00e7\u00e3o de strings, assim como os delimitadores de aspas simples e duplas, mais comumente utilizados.\" \/>\n<meta property=\"og:url\" content=\"\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog DialHost\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-18T11:53:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/04\/og-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialhost\" \/>\n<meta name=\"twitter:site\" content=\"@dialhost\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\",\"name\":\"DialHost Internet\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\",\"https:\/\/twitter.com\/dialhost\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/03\/marca-dialhost.png\",\"width\":81,\"height\":81,\"caption\":\"DialHost Internet\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"name\":\"Blog DialHost\",\"description\":\"Os melhores conte\\u00fados sobre Desenvolvimento Web, Marketing e Neg\\u00f3cios\",\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.dialhost.com.br\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#webpage\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/\",\"name\":\"heredoc e nowdoc - tratamento de strings com PHP - Blog DialHost\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#primaryimage\"},\"datePublished\":\"2016-01-18T11:53:50+00:00\",\"dateModified\":\"2016-01-18T11:53:50+00:00\",\"description\":\"heredoc e do nowdoc s\\u00e3o dois s\\u00e3o duas formas de representa\\u00e7\\u00e3o de strings, assim como os delimitadores de aspas simples e duplas, mais comumente utilizados.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/\",\"url\":\"\/blog\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/\",\"url\":\"\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/\",\"name\":\"heredoc e nowdoc &#8211; tratamento de strings com PHP\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\"},\"headline\":\"heredoc e nowdoc &#8211; tratamento de strings com PHP\",\"datePublished\":\"2016-01-18T11:53:50+00:00\",\"dateModified\":\"2016-01-18T11:53:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/heredoc-e-nowdoc-tratamento-de-strings-com-php\/#primaryimage\"},\"keywords\":\"desenvolvimento,heredoc,php,PHP 5.4,Strings\",\"articleSection\":\"PHP,Tecnologias\",\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\",\"name\":\"DialHost Internet\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05feec2f99aef1c42b09aeaa637ee66f?s=96&r=g\",\"caption\":\"DialHost Internet\"},\"description\":\"H\\u00e1 mais de 18 anos proporcionando um servi\\u00e7o de hospedagem de sites voltado 100% na Experi\\u00eancia e Sucesso do Cliente, prezando a qualidade, transpar\\u00eancia e seguran\\u00e7a.\",\"sameAs\":[\"https:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/twitter.com\/dialhost\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3457"}],"collection":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3457"}],"version-history":[{"count":0,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3457\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media\/3501"}],"wp:attachment":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}