Estoy tratando de configurar una variable de javascript para que sea igual a la salida del código php:
var name = '<?php global $email; echo json_encode(passthru("python Backend/User/getName.py $email"));?>';
Cuando esto se ejecuta, devuelve el valor correcto, pero también le asigna un valor nulo:
var name = 'name null';
Esto hace que el código tome el valor como nulo y no como el nombre devuelto.
Como se indicó, passthru devuelve nulo en caso de éxito y falso en caso de error.
Lo que está buscando obtener es el contenido del archivo, por lo que una forma sencilla de hacerlo es simplemente usar el almacenamiento en búfer de salida.
Puede tener una función simple para devolver el valor de su script así:
<?php function getPassthruValue(string $command) { ob_start(); passthru($command); $returnValue = ob_get_contents(); ob_end_clean(); return $returnValue; } global $email; $value = getPassthruValue("python Backend/User/getName.py $email"); ?> <script> var passthruValue = "<?= $value ?>" </script>
<?=
=== <?php echo
en caso de que no sepa lo que significa la anotación abreviada.
Esto tomará el valor de su secuencia de comandos de python y luego lo establecerá en un valor js.
Esto devolverá una cadena vacía en caso de falla, por lo que es posible que deba implementar un manejo de excepciones según sus necesidades.