Difference between revisions of "John's hacks"
From ProgClub
Line 54: | Line 54: | ||
== Passing shell args (PHP) == | == Passing shell args (PHP) == | ||
+ | |||
+ | Put your args in $args and use escapeshellarg() to escape them... | ||
$args = join( ' ', array_map( 'escapeshellarg', $args ) ); | $args = join( ' ', array_map( 'escapeshellarg', $args ) ); | ||
exec( "$program $args" ); | exec( "$program $args" ); |
Revision as of 01:55, 16 April 2020
I decided I might start documenting some hacks I've come across in my travels which I think are neat.
Removing last comma (PHP)
Sometimes you're processing a list to build a string and you want a comma after all items except the last one. You can do that like this:
// 2020-04-14 jj5 - it's important to handle this case... // if ( count( $list ) === 0 ) { return 'list is empty'; } $result = 'my list: '; $is_first = true; foreach ( $list as $item ) { if ( $is_first ) { $is_first = false; } else { $result .= ', '; } $result .= $item; } return $result . '.';
But that can be simplified like this:
// 2020-04-14 jj5 - it's important to handle this case... // if ( count( $list ) === 0 ) { return 'list is empty'; } $result = 'my list: '; foreach ( $list as $item ) { $result .= "$item, "; } // 2020-04-14 jj5 - the neat hack is dropping the last two characters here... // return substr( $result, 0, -2 ) . '.';
Although the whole thing can often (but not always) be simplified as something like this (you might also need to check for an empty list):
return 'my list: ' . implode( ', ', $list ) . '.';
Passing shell args (PHP)
Put your args in $args and use escapeshellarg() to escape them...
$args = join( ' ', array_map( 'escapeshellarg', $args ) ); exec( "$program $args" );