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

@ -7,6 +7,14 @@ else $SHLVL=3;
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/string.php");

View file

@ -71,7 +71,9 @@ function myvesta_fix_args() {
}
function myvesta_test_func () {
global $myvesta_stdin;
$args=func_get_args();
if ($myvesta_stdin!='') array_splice( $args, 0, 0, array($myvesta_stdin) );
myvesta_echo ("You said: ");
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 ---
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) {
global $myvesta_str_found_at, $myvesta_str_end_at;
function myvesta_str_get_between () {
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_end_at=0;
$from_null=0;
@ -105,7 +120,19 @@ function myvesta_str_get_between (&$text, $left_substring, $right_substring, $st
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);
if ($pos1===false) return $text;
$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));
}
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);
if ($pos1===false) return $text;
$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));
}
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;
$left_len=strlen($left);
$right_len=strlen($right);
@ -135,7 +185,18 @@ function myvesta_str_replace_between_including_borders($text, $left, $right, $re
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);
$right_len=strlen($right);
while (true) {
@ -147,3 +208,43 @@ function myvesta_str_strip_between_including_borders($text, $left, $right) {
}
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);
}