-
Notifications
You must be signed in to change notification settings - Fork 311
/
ch-2.php
26 lines (23 loc) · 828 Bytes
/
ch-2.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
const SCREEN_WIDTH = 100;
echo '$str = ';
$str = rtrim(fgets(STDIN));
echo '@width = ';
$width = array_combine(range('a', 'z'), explode(' ', rtrim(fgets(STDIN))));
$current_line_number = 1;
$current_line_content = '';
$current_column = 0;
$characters = str_split($str);
foreach ($characters as $current_char) {
$current_width = $width[$current_char];
if ($current_column + $current_width > SCREEN_WIDTH) {
echo "Line $current_line_number: $current_line_content ($current_column pixels)\n";
$current_line_content = "$current_char";
$current_column = $current_width;
$current_line_number++;
continue;
}
$current_column += $current_width;
$current_line_content .= $current_char;
}
echo "Line $current_line_number: $current_line_content ($current_column pixels)";