3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php //+ Jonas Raoni Soares Silva //@ http://jsfromhell.com class String{ public static function truncate($s, $l, $e = '...', $isHTML = false){ $i = 0; $tags = array(); if($isHTML){ preg_match_all('/<[^>]+>([^<]*)/', $s, $m, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); echo "\n\n\n"; var_export( $m ); echo "\n\n\n"; foreach($m as $o){ if($o[0][1] - $i >= $l) break; $t = substr(strtok($o[0][0], " \t\n\r\0\x0B>"), 1); if($t[0] != '/') $tags[] = $t; elseif(end($tags) == substr($t, 1)) array_pop($tags); $i += $o[1][1] - $o[0][1]; } } return substr($s, 0, $l = min(strlen($s), $l + $i)) . (count($tags = array_reverse($tags)) ? '</' . implode('></', $tags) . '>' : '') . (strlen($s) > $l ? $e : ''); } } $sText = '<p>Ключевым элементом в области снижения влияния объектов производства на водные ресурсы является уменьшение забора воды и качество <i>очистительных</i> процедур.</p> <p>Для <strong>этих</strong> целей Группа «Газпром» проводит организационно-технические мероприятия, <img src="http://osb.loc/images/logo.jpg" alt="test" text> в частности по установке средств измерения расхода воды, а также установке и наладке запорно-затворной арматуры на своих предприятиях, что способствует существенной экономии водных ресурсов.</p> <p>Повышение эффективности действующих очистных сооружений и внедрение новых технологий очистки стоков позволяет обеспечить нормативное качество очистки сточных вод. Общая мощность очистных сооружений «Газпрома» в 2010 г. составила 153,263 млн куб. м. Половина нормативно очищенных стоков прошла очистку на сооружениях биологической очистки, 39% — механической очистки, 12% — физико-химической очистки сточных вод.</p>'; echo String::truncate( $sText, 150, ' ...'); //jo<... echo "\n\n\n"; echo String::truncate( $sText, 150, ' ...', true); //jo<i><b>n</b></i>... echo "\n\n\n"; echo String::truncate( $sText, 150, ' ...', false); //jo<i><b>n...
Output for 5.0.0 - 5.0.5, 5.1.1 - 5.6.28, hhvm-3.12.0
<p>Ключевым элементом в области снижения влияния объектов производства на водные � ... array ( 0 => array ( 0 => array ( 0 => '<p>Ключевым элементом в области снижения влияния объектов производства на водные ресурсы является уменьшение забора воды и качество ', 1 => 0, ), 1 => array ( 0 => 'Ключевым элементом в области снижения влияния объектов производства на водные ресурсы является уменьшение забора воды и качество ', 1 => 3, ), ), 1 => array ( 0 => array ( 0 => '<i>очистительных', 1 => 244, ), 1 => array ( 0 => 'очистительных', 1 => 247, ), ), 2 => array ( 0 => array ( 0 => '</i> процедур.', 1 => 273, ), 1 => array ( 0 => ' процедур.', 1 => 277, ), ), 3 => array ( 0 => array ( 0 => '</p> ', 1 => 295, ), 1 => array ( 0 => ' ', 1 => 299, ), ), 4 => array ( 0 => array ( 0 => '<p>Для ', 1 => 300, ), 1 => array ( 0 => 'Для ', 1 => 303, ), ), 5 => array ( 0 => array ( 0 => '<strong>этих', 1 => 310, ), 1 => array ( 0 => 'этих', 1 => 318, ), ), 6 => array ( 0 => array ( 0 => '</strong> целей Группа «Газпром» проводит организационно-технические мероприятия, ', 1 => 326, ), 1 => array ( 0 => ' целей Группа «Газпром» проводит организационно-технические мероприятия, ', 1 => 335, ), ), 7 => array ( 0 => array ( 0 => '<img src="http://osb.loc/images/logo.jpg" alt="test" text> в частности по установке средств измерения расхода воды, а также установке и наладке запорно-затворной арматуры на своих предприятиях, что способствует существенной экономии водных ресурсов.', 1 => 472, ), 1 => array ( 0 => ' в частности по установке средств измерения расхода воды, а также установке и наладке запорно-затворной арматуры на своих предприятиях, что способствует существенной экономии водных ресурсов.', 1 => 530, ), ), 8 => array ( 0 => array ( 0 => '</p> ', 1 => 884, ), 1 => array ( 0 => ' ', 1 => 888, ), ), 9 => array ( 0 => array ( 0 => '<p>Повышение эффективности действующих очистных сооружений и внедрение новых технологий очистки стоков позволяет обеспечить нормативное качество очистки сточных вод. Общая мощность очистных сооружений «Газпрома» в 2010 г. составила 153,263 млн куб. м. Половина нормативно очищенных стоков прошла очистку на сооружениях биологической очистки, 39% — механической очистки, 12% — физико-химической очистки сточных вод.', 1 => 889, ), 1 => array ( 0 => 'Повышение эффективности действующих очистных сооружений и внедрение новых технологий очистки стоков позволяет обеспечить нормативное качество очистки сточных вод. Общая мощность очистных сооружений «Газпрома» в 2010 г. составила 153,263 млн куб. м. Половина нормативно очищенных стоков прошла очистку на сооружениях биологической очистки, 39% — механической очистки, 12% — физико-химической очистки сточных вод.', 1 => 892, ), ), 10 => array ( 0 => array ( 0 => '</p>', 1 => 1641, ), 1 => array ( 0 => '', 1 => 1645, ), ), ) <p>Ключевым элементом в области снижения влияния объектов производства на водные ре</p> ... <p>Ключевым элементом в области снижения влияния объектов производства на водные � ...
Output for hhvm-3.10.0

Process exited with code 153.
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/MPUcj on line 37
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/MPUcj on line 6
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/MPUcj on line 6
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/MPUcj on line 6
Process exited with code 255.