Skip to content

Commit c7901a7

Browse files
committed
zend_compile: Deprecate backticks as an alias for shell_exec()
RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_backticks_as_an_alias_for_shell_exec
1 parent 8f1a627 commit c7901a7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+219
-112
lines changed

Zend/tests/bug40236.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if (extension_loaded("readline")) die("skip Test doesn't support readline");
88
<?php
99
$php = getenv('TEST_PHP_EXECUTABLE_ESCAPED');
1010
$cmd = "$php -n -d memory_limit=4M -a \"".__DIR__."\"/bug40236.inc";
11-
echo `$cmd`;
11+
echo shell_exec($cmd);
1212
?>
1313
--EXPECT--
1414
Interactive shell (-a) requires the readline extension.

Zend/tests/bug55509.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ if (PHP_OS == 'Linux') {
2828
}
2929
}
3030
elseif (PHP_OS == 'FreeBSD') {
31-
$lines = explode("\n",`sysctl -a`);
31+
$lines = explode("\n", shell_exec("sysctl -a"));
3232
$infos = array();
3333
foreach ($lines as $line) {
3434
if (!$line){

Zend/tests/bug64677.phpt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,12 @@ function show_outputa($prepend, $output) {
1717
show_outputa('Files: ', `cd .`); // this works as expected
1818

1919
?>
20-
--EXPECT--
20+
--EXPECTF--
21+
Deprecated: The backtick (`) operator is deprecated, use shell_exec() instead in %s on line %d
22+
23+
Deprecated: The backtick (`) operator is deprecated, use shell_exec() instead in %s on line %d
24+
25+
Deprecated: The backtick (`) operator is deprecated, use shell_exec() instead in %s on line %d
26+
27+
Deprecated: The backtick (`) operator is deprecated, use shell_exec() instead in %s on line %d
2128
Okey

Zend/zend_compile.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10836,6 +10836,8 @@ static void zend_compile_shell_exec(znode *result, zend_ast *ast) /* {{{ */
1083610836
zval fn_name;
1083710837
zend_ast *name_ast, *args_ast, *call_ast;
1083810838

10839+
zend_error(E_DEPRECATED, "The backtick (`) operator is deprecated, use shell_exec() instead");
10840+
1083910841
ZVAL_STRING(&fn_name, "shell_exec");
1084010842
name_ast = zend_ast_create_zval(&fn_name);
1084110843
args_ast = zend_ast_create_list(1, ZEND_AST_ARG_LIST, expr_ast);

ext/opcache/tests/revalidate_path_01.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ if (substr(PHP_OS, 0, 3) == 'WIN') {
3030
@rmdir($link);
3131
$ln = str_replace('/', '\\', $link);
3232
$d1 = realpath($dir1);
33-
`mklink /j $ln $d1`;
33+
shell_exec("mklink /j $ln $d1");
3434
} else {
3535
@unlink($link);
3636
@symlink($dir1, $link);
@@ -45,7 +45,7 @@ if (substr(PHP_OS, 0, 3) == 'WIN') {
4545
@rmdir($link);
4646
$ln = str_replace('/', '\\', $link);
4747
$d2 = realpath($dir2);
48-
`mklink /j $ln $d2`;
48+
shell_exec("mklink /j $ln $d2");
4949
} else {
5050
@unlink($link);
5151
@symlink($dir2, $link);

ext/phar/phar/pharcommand.inc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,13 @@ class PharCommand extends CLICommand
225225
}
226226
}
227227
if ($pear) {
228-
$apiver = (string) `pear -q info PHP_Archive 2>/dev/null|grep 'API Version'`;
228+
$apiver = (string) shell_exec("pear -q info PHP_Archive 2>/dev/null|grep 'API Version'");
229229
$apiver = trim(substr($apiver, strlen('API Version')));
230230
}
231231
if ($apiver) {
232232
self::notice("PEAR package PHP_Archive: API Version: $apiver.\n");
233-
$files = explode("\n", (string) `pear list-files PHP_Archive`);
234-
$phpdir = (string) `pear config-get php_dir 2>/dev/null`;
233+
$files = explode("\n", (string) shell_exec("pear list-files PHP_Archive"));
234+
$phpdir = (string) shell_exec("pear config-get php_dir 2>/dev/null");
235235
$phpdir = trim($phpdir);
236236
self::notice("PEAR package PHP_Archive: $phpdir.\n");
237237
if (is_dir($phpdir)) {

ext/session/tests/session_regenerate_id_cookie.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ ob_end_flush();
5555
?>');
5656

5757
$extra_arguments = getenv('TEST_PHP_EXTRA_ARGS');
58-
var_dump(`$php $extra_arguments -d session.name=PHPSESSID $file`);
58+
var_dump(shell_exec("$php $extra_arguments -d session.name=PHPSESSID $file"));
5959

6060
unlink($file);
6161

ext/standard/tests/dir/bug73877.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ $junk0 = $base . DIRECTORY_SEPARATOR . "Серёжка2";
1818
mkdir($base);
1919
mkdir($dir0);
2020
mkdir($dir1);
21-
`mklink /J $junk0 $dir0`;
21+
shell_exec("mklink /J $junk0 $dir0");
2222

2323
var_dump(
2424
readlink($dir0),

ext/standard/tests/file/mkdir-002.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,21 @@ if (substr(PHP_OS, 0, 3) == 'WIN') {
1111

1212
var_dump(mkdir("mkdir-002", 0777));
1313
var_dump(mkdir("mkdir-002/subdir", 0777));
14-
var_dump(`ls -l mkdir-002`);
14+
var_dump(shell_exec("ls -l mkdir-002"));
1515
var_dump(rmdir("mkdir-002/subdir"));
1616
var_dump(rmdir("mkdir-002"));
1717

1818
var_dump(mkdir("./mkdir-002", 0777));
1919
var_dump(mkdir("./mkdir-002/subdir", 0777));
20-
var_dump(`ls -l ./mkdir-002`);
20+
var_dump(shell_exec("ls -l ./mkdir-002"));
2121
var_dump(rmdir("./mkdir-002/subdir"));
2222
var_dump(rmdir("./mkdir-002"));
2323

2424
var_dump(mkdir(__DIR__."/mkdir-002", 0777));
2525
var_dump(mkdir(__DIR__."/mkdir-002/subdir", 0777));
2626
$dirname = __DIR__."/mkdir-002";
2727
$dirname_escaped = escapeshellarg($dirname);
28-
var_dump(`ls -l $dirname_escaped`);
28+
var_dump(shell_exec("ls -l $dirname_escaped"));
2929
var_dump(rmdir(__DIR__."/mkdir-002/subdir"));
3030
var_dump(rmdir(__DIR__."/mkdir-002"));
3131

sapi/cgi/tests/001.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ include "include.inc";
1010
$php = get_cgi_path();
1111
reset_env_vars();
1212

13-
var_dump(`$php -n -v`);
13+
var_dump(shell_exec("$php -n -v"));
1414

1515
echo "Done\n";
1616
?>

0 commit comments

Comments
 (0)