myvesta-php-func support for stdin

This commit is contained in:
myvesta 2023-04-14 15:39:33 +02:00 committed by GitHub
parent 77467eeebd
commit 4dd6d22f07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 126 additions and 6 deletions

View file

@ -8,5 +8,14 @@
# Action # # Action #
#----------------------------------------------------------# #----------------------------------------------------------#
if [ -p /dev/stdin ]; then
STDIN=$(cat -)
if [ ! -z "$STDIN" ]; then
echo "$STDIN" | php /usr/local/vesta/func/bash-to-php-interpreter.php "$@"
exit $?
fi
fi
php /usr/local/vesta/func/bash-to-php-interpreter.php "$@" php /usr/local/vesta/func/bash-to-php-interpreter.php "$@"
exit $? exit $?

View file

@ -7,6 +7,14 @@ else $SHLVL=3;
if (!isset($argv)) exit(5); if (!isset($argv)) exit(5);
stream_set_blocking(STDIN, false);
$myvesta_stdin='';
$myvesta_f = fopen( 'php://stdin', 'r' );
while( $myvesta_line = fgets( $myvesta_f ) ) {
$myvesta_stdin .= $myvesta_line;
}
fclose( $myvesta_f );
include ("/usr/local/vesta/func/main.php"); include ("/usr/local/vesta/func/main.php");
include ("/usr/local/vesta/func/string.php"); include ("/usr/local/vesta/func/string.php");

View file

@ -71,7 +71,9 @@ function myvesta_fix_args() {
} }
function myvesta_test_func () { function myvesta_test_func () {
global $myvesta_stdin;
$args=func_get_args(); $args=func_get_args();
if ($myvesta_stdin!='') array_splice( $args, 0, 0, array($myvesta_stdin) );
myvesta_echo ("You said: "); myvesta_echo ("You said: ");
myvesta_echo (trim(print_r ($args, true))); myvesta_echo (trim(print_r ($args, true)));
} }

View file

@ -70,8 +70,23 @@ function myvesta_strip_in_file_between_including_borders($file, $left, $right) {
// --- string functions --- // --- string functions ---
function myvesta_str_get_between (&$text, $left_substring, $right_substring, $start=0, $return_left_substring=0, $return_right_substring=0, $left_substring_necessary=1, $right_substring_necessary=1) { function myvesta_str_get_between () {
global $myvesta_str_found_at, $myvesta_str_end_at; global $myvesta_stdin, $myvesta_str_found_at, $myvesta_str_end_at;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
$args_i++; $left_substring=$args[$args_i];
$args_i++; $right_substring=$args[$args_i];
$args_i++; $start=0; if (!empty($args[$args_i])) $start=intval($args[$args_i]);
$args_i++; $return_left_substring=0; if (!empty($args[$args_i])) $return_left_substring=intval($args[$args_i]);
$args_i++; $return_right_substring=0; if (!empty($args[$args_i])) $return_right_substring=intval($args[$args_i]);
$args_i++; $left_substring_necessary=1; if (!empty($args[$args_i])) $left_substring_necessary=intval($args[$args_i]);
$args_i++; $right_substring_necessary=1; if (!empty($args[$args_i])) $right_substring_necessary=intval($args[$args_i]);
$myvesta_str_found_at=0; $myvesta_str_found_at=0;
$myvesta_str_end_at=0; $myvesta_str_end_at=0;
$from_null=0; $from_null=0;
@ -105,7 +120,19 @@ function myvesta_str_get_between (&$text, $left_substring, $right_substring, $st
return substr($text, $pos1, $len); return substr($text, $pos1, $len);
} }
function myvesta_str_replace_once_between_including_borders(&$text, $left, $right, $replace_with) { function myvesta_str_replace_once_between_including_borders() {
global $myvesta_stdin;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
$args_i++; $left=$args[$args_i];
$args_i++; $right=$args[$args_i];
$args_i++; $replace_with=$args[$args_i];
$pos1=strpos($text, $left); $pos1=strpos($text, $left);
if ($pos1===false) return $text; if ($pos1===false) return $text;
$pos2=strpos($text, $right, $pos1+strlen($left)); $pos2=strpos($text, $right, $pos1+strlen($left));
@ -113,7 +140,18 @@ function myvesta_str_replace_once_between_including_borders(&$text, $left, $righ
return substr($text, 0, $pos1).$replace_with.substr($text, $pos2+strlen($right)); return substr($text, 0, $pos1).$replace_with.substr($text, $pos2+strlen($right));
} }
function myvesta_str_strip_once_between_including_borders(&$text, $left, $right) { function myvesta_str_strip_once_between_including_borders() {
global $myvesta_stdin;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
$args_i++; $left=$args[$args_i];
$args_i++; $right=$args[$args_i];
$pos1=strpos($text, $left); $pos1=strpos($text, $left);
if ($pos1===false) return $text; if ($pos1===false) return $text;
$pos2=strpos($text, $right, $pos1+strlen($left)); $pos2=strpos($text, $right, $pos1+strlen($left));
@ -121,7 +159,19 @@ function myvesta_str_strip_once_between_including_borders(&$text, $left, $right)
return substr($text, 0, $pos1).substr($text, $pos2+strlen($right)); return substr($text, 0, $pos1).substr($text, $pos2+strlen($right));
} }
function myvesta_str_replace_between_including_borders($text, $left, $right, $replace_with) { function myvesta_str_replace_between_including_borders() {
global $myvesta_stdin;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
$args_i++; $left=$args[$args_i];
$args_i++; $right=$args[$args_i];
$args_i++; $replace_with=$args[$args_i];
$start=0; $start=0;
$left_len=strlen($left); $left_len=strlen($left);
$right_len=strlen($right); $right_len=strlen($right);
@ -135,7 +185,18 @@ function myvesta_str_replace_between_including_borders($text, $left, $right, $re
return $text; return $text;
} }
function myvesta_str_strip_between_including_borders($text, $left, $right) { function myvesta_str_strip_between_including_borders() {
global $myvesta_stdin;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
$args_i++; $left=$args[$args_i];
$args_i++; $right=$args[$args_i];
$left_len=strlen($left); $left_len=strlen($left);
$right_len=strlen($right); $right_len=strlen($right);
while (true) { while (true) {
@ -147,3 +208,43 @@ function myvesta_str_strip_between_including_borders($text, $left, $right) {
} }
return $text; return $text;
} }
function myvesta_str_find() {
global $myvesta_stdin;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
$args_i++; $find=$args[$args_i];
$pos=strpos($text, $find);
if ($pos===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, "");
return $pos;
}
function myvesta_str_uppercase() {
global $myvesta_stdin;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
return strtoupper($text);
}
function myvesta_str_lowercase() {
global $myvesta_stdin;
$args=func_get_args();
$args_i=-1;
if ($myvesta_stdin!='') {
$text=$myvesta_stdin;
} else {
$args_i++; $text=$args[$args_i];
}
return strtolower($text);
}