40

I and lately I'm seeing h() and e() functions in PHP. I have googled them, but they are so short that results don't give any idea of what they are. I got results like exponential or math related functions. For example:

<td><?php echo h($room['Room']['message']) ?></td>

Does anyone have an idea? or maybe they are not called functions? (I think I read about that very long ago, but I can remember its real name)

ADDED:

Thanks, for the replies. I am using CakePHP and also found an e() example:

<?php e($time->niceShort($question['Question'] ['created'])) ?>

If they were escaping somehow strings I think it would make sense, since I always see them right next the "echo"

I still don't know what they are ;(

Community
  • 1
  • 1
nacho4d
  • 43,720
  • 45
  • 157
  • 240

13 Answers13

29

As several readers have said, these are CakePHP-specific short-cuts. You can find them in the API docs at: here (for CakePHP 2.x)

I think I read that some of these are going to be removed in 1.3, personally I never used e() as typing echo really doesn't take that much longer :)

edit: e() is deprecated in 1.3 and no longer available in 2.0 see here

Zoltan
  • 291
  • 1
  • 2
  • 2
  • +1 for providing an actual link, unlike all the other answers that either say what the functions *aren't* a member of, or surmise that they're CakePHP without committing to that as the answer. – Rob Kennedy Jan 11 '10 at 17:26
15

It looks like it might be CakePHP.

See e()

e (mixed $data)

Convenience wrapper for echo().

This has been Deprecated and will be removed in 2.0 version. Use echo() instead.

See h()

h (string $text, string $charset = null)

Convenience wrapper for htmlspecialchars().

kgbph
  • 841
  • 1
  • 8
  • 26
Tom Haigh
  • 57,217
  • 21
  • 114
  • 142
10

Most likely, they are dummy functions someone introduced for the sake of brevity. The h(), for example, looks like an alias for htmlspecialchars():

function h($s)
{
    return htmlspecialchars($s);
}

So look for them in the include files. Espec. the ones with names likes "util.php" or "lib.php".

Seva Alekseyev
  • 59,826
  • 25
  • 160
  • 281
8

They are probably functions defined and implemented by the group's code that you're looking at. I'm not aware of any e/h functions in the PHP language.

Nothing here:

http://us3.php.net/manual/en/function.h.php

http://us3.php.net/manual/en/function.e.php

mr-sk
  • 13,174
  • 11
  • 66
  • 101
8

Likely the framework you're using is doing some escaping and has defined some short hands for htmlentities and htmlspecialchars or equivalents.

I'd do a search on whatever framework you're using for "function h("

Allain Lalonde
  • 91,574
  • 70
  • 187
  • 238
6

There aren't any functions in PHP called h() and e(). They must be declared in the project you are working on. search for them and find out what they do.

GSto
  • 41,512
  • 37
  • 133
  • 184
5

In CakePHP h() is: Convenience wrapper for htmlspecialchars()

For more information about Global constants and functions in CakePHP view this link

http://book.cakephp.org/2.0/en/core-libraries/global-constants-and-functions.html

Jack1987
  • 727
  • 1
  • 14
  • 26
4

I'd guess that h() escapes user-submitted data for safe output, and e() escapes for database insertion. Whatever the functionality, these are not stock PHP functions.

ceejayoz
  • 176,543
  • 40
  • 303
  • 368
  • 1
    `e()` may also be `urlencode`. Personally I use `h()` to do `echo(htmlspecialchars())` to cut down on templating verbosity. – bobince Jan 11 '10 at 16:46
3

It's CakePHP.

echo h('some stuff')

Is just htmlspecialchar()ing the stuff.

Emil
  • 7,220
  • 17
  • 76
  • 135
newshorts
  • 1,057
  • 12
  • 12
2

If you are using a decent editor press ctrl and click on the function. It should take you to the function's declaration.

AntonioCS
  • 8,335
  • 18
  • 63
  • 92
  • These would have to be actual stock PHP functions for that to work. – ceejayoz Jan 11 '10 at 17:13
  • 1
    Not really. I know in Netbeans you can go to the declaration so long as the file where it is declared is in your include path. It's a good way to see what's happening. – Blair McMillan Jan 11 '10 at 17:22
2

Laravel also use e() helper function to runs htmlentities over the given string.

echo e('<html>foo</html>');

// &lt;html&gt;foo&lt;/html&gt;

documentation : https://laravel.com/docs/5.8/helpers#method-e

Tamim
  • 916
  • 11
  • 19
1

http://book.cakephp.org/view/121/Global-Functions these are shortcut functions in cakePHP

Many of them are deprecated in 1.3 so beware of using them yourself

Sam D
  • 430
  • 4
  • 6
1

h() is global function in CakePHP. Documents about h() for CakePHP version 2.5.7 : http://book.cakephp.org/2.0/en/core-libraries/global-constants-and-functions.html#global-functions

Vy Do
  • 46,709
  • 59
  • 215
  • 313