i have invoke from cli and php script like that:
# php test.php
the php script content:
<?php
echo chr(201);
that's the square corner on the top left for CLI
but it shows É
character and expected:
(sorry for the image I do not find this character for the post).
I have try to use other method to get it working but nothing of it work:
<?php
echo mb_convert_encoding(chr(201), 'UTF-8', 'ISO-8859-1');
<?php
echo utf8_encode(chr(201));
The PHP file is UTF-8 without BOM.
terminal setting:
Update: Text Output:
<0x1b[1;0m
array [
'idprocess' => string(11): 'c-cron-0001',
'idform' => string(11): 'c-cron-0001',
]
<0x1b>[0m
<0x1b>[1;0m
array [
'idprocess' => string(11): 'c-cron-0004',
'idform' => string(11): 'c-cron-0004',
]
<0x1b>[0m
<0x1b>[1;0m
array [
'idprocess' => string(11): 'c-cron-0005',
'idform' => string(11): 'c-cron-0005',
]
<0x1b>[0m
<0x1b>[1;0m
array [
'idprocess' => string(11): 'c-cron-0006',
'idform' => string(11): 'c-cron-0006',
]
<0x1b>[0m
<0x1b>[1;0m
array [
'idprocess' => string(11): 'c-cron-0007',
'idform' => string(11): 'c-cron-0007',
]
<0x1b>[0m
Update: ouput from drawbox function:
╔══════════════════════════════════════════════════════════════════════════════╗
║ <0x1b>[1;0m ║
║ array [ ║
║ 'idprocess' => string(11): 'c-cron-0001', ║
║ 'idform' => string(11): 'c-cron-0001', ║
║ ] ║
║ <0x1b>[0m ║
║ <0x1b>[1;0m ║
║ array [ ║
║ 'idprocess' => string(11): 'c-cron-0004', ║
║ 'idform' => string(11): 'c-cron-0004', ║
║ ] ║
║ [0m ║
║ [1;0m ║
║ array [ ║
║ 'idprocess' => string(11): 'c-cron-0005', ║
║ 'idform' => string(11): 'c-cron-0005', ║
║ ] ║
║ <0x1b>[0m ║
║ <0x1b>[1;0m ║
║ array [ ║
║ 'idprocess' => string(11): 'c-cron-0006', ║
║ 'idform' => string(11): 'c-cron-0006', ║
║ ] ║
║ <0x1b>[0m ║
║ <0x1b>[1;0m ║
║ array [ ║
║ 'idprocess' => string(11): 'c-cron-0007', ║
║ 'idform' => string(11): 'c-cron-0007', ║
║ ] ║
║ <0x1b>[0m ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════╝
In extended ASCII in PHP using cp1252
the chr(201)
is É
.
execute this code:
<?php
for ($i = 0; $i <= 255; $i++) {
echo "$i: " . htmlentities(chr($i), ENT_QUOTES, 'cp1252') . "<br />";
}
What you are actually looking for are Box Drawing characters which in Unicode has other values. You can copy abd paste it from the Wikipedia or just run this script to display all characters with numeric entities:
<?php
$mains = [250, 251, 252, 253, 254, 255, 256, 257];
$subs = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F'];
echo '<table>';
foreach ($mains as $main){
foreach ($subs as $sub){
$code = $main.$sub;
echo "
<tr>
<td><pre>&#x{$code};</pre> </td>
<td>&#x{$code};</td>
</tr>" ;
}
}
echo '</table>';
HTML char
-----------------
...
╒ ╒
╓ ╓
╔ ╔
╕ ╕
╖ ╖
╗ ╗
...
So I assume that you want to get something like this (run the snippet):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<style>
.monospace {
font-family: monospace;
}
</style>
</head>
<body>
<div class="monospace">
╔═══════════╗<br>
║ Some text ║<br>
╚═══════════╝
</div>
</body>
</html>
I'm pretty sure that you will have long night to draw these boxes, I'd suggest some PP script for counting inner text's length LOL :D
actually according to this old article drawings are even funny :D
<?php
drawBoxes(
[
'Header',
'Hello, World!',
'Box drawing is alive after all these years!!!! :D',
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum arcu.'
],
true,
true
);
function drawBoxes(array $lines, $isFirstLineHeader = false, $wrapInPre = false)
{
$tl = html_entity_decode('╔', ENT_NOQUOTES, 'UTF-8'); // top left corner
$tr = html_entity_decode('╗', ENT_NOQUOTES, 'UTF-8'); // top right corner
$bl = html_entity_decode('╚', ENT_NOQUOTES, 'UTF-8'); // bottom left corner
$br = html_entity_decode('╝', ENT_NOQUOTES, 'UTF-8'); // bottom right corner
$v = html_entity_decode('║', ENT_NOQUOTES, 'UTF-8'); // vertical wall
$h = html_entity_decode('═', ENT_NOQUOTES, 'UTF-8'); // horizontal wall
$hs = html_entity_decode('─', ENT_NOQUOTES, 'UTF-8'); // horizontal wall single
$ls = html_entity_decode('╟', ENT_NOQUOTES, 'UTF-8'); // right separator
$rs = html_entity_decode('╢', ENT_NOQUOTES, 'UTF-8'); // right separator
$longest = 0;
foreach ($lines as $line) {
$len = strlen($line);
if ($len > $longest) {
$longest = $len;
}
}
$preStart = $wrapInPre ? "<pre style='font-family: monospace'>" . PHP_EOL : '';
$preEnd = $wrapInPre ? PHP_EOL . "</pre>" : '';
echo $preStart . $tl . str_repeat($h, $longest + 2) . $tr . PHP_EOL;
$i = 0;
foreach ($lines as $line) {
$addEmpty = '';
$len = strlen($line);
if ($len < $longest) {
$addEmpty = str_repeat(' ', $longest - $len);
}
echo $v . ' ' . $line . $addEmpty . ' ' . $v;
if ($isFirstLineHeader && $i == 0) {
echo PHP_EOL . $ls . str_repeat($hs, $longest + 2) . $rs . PHP_EOL;
} else {
echo PHP_EOL;
}
$i++;
}
echo $bl . str_repeat($h, $longest + 2) . $br . $preEnd;
}
output
╔═══════════════════════════════════════════════════════════════════════════╗
║ Header ║
╟───────────────────────────────────────────────────────────────────────────╢
║ Hello, World! ║
║ Box drawing is alive after all these years!!!! :D ║
║ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum arcu. ║
╚═══════════════════════════════════════════════════════════════════════════╝
Set second param of drawBoxes()
function $wrapInPre
to true
if you want to display this in HTML and false
if it's for plain text.