En .NET La clase de proceso contiene varias propiedades/métodos útiles que permiten a los desarrolladores acceder a la información relativa al proceso. ¿Hay algún método o clase equivalente en PHP?¿Hay un equivalente al Proceso de C#. Comienza en PHP?
¿Hay algún método equivalente en PHP como el método C# "Process.Start()"?
Respuesta
1.
Ver Program execution Functions
Excepto que no hay ningún concepto de métodos/clases/propiedades/espacios de nombres en las funciones estándar de PHP. PHP es esencialmente un lenguaje de programación procedural con pocas construcciones OOP y soporte de espacio de nombres que se agrega como una nueva función a partir de la última versión principal (5.3). Es una de las razones por las que la gente lo critica como un lenguaje de "juguete". Puede acceder a todas las funciones incorporadas de PHP todo el tiempo, no molestos espacios de nombres para ponerse en el camino;), solo tenga cuidado con las colisiones de nombres.
2.
@YSJaitawat Right answer mala referencia.
Haga clic en este enlace para el exec function documentation in the PHP manual.
Nota: También, si está migrando de C# para PHP y en busca de información de la PHP manual tiene algunos sorprendentemente buena información incluyendo los comentarios enviados por los usuarios en la parte inferior de la entrada, donde la gente suele publicar casos de uso o extensiones a los usos estándar. Probablemente sea el idioma más fácil de aprender debido a la gran cantidad de información que se encuentra en el manual.
siguiente fragmento de código debería hacer lo mismo que "Process.Start()"
$ 'proceso ejecutable' = ejecutables; exec ($ ejecutable);
más en el control de procesos y la ejecución se puede encontrar en http://php.net/manual/en/book.pcntl.php
Si desea tener acceso a la entrada y salida estándar del proceso de crear, puede utilizar:
respuesta de Evan Solla cubre algunos de los conceptos básicos, sin embargo, una gran parte del sistema POSIX es todo abount procesos y la comunicación gestión - supuesto de que no estás en una plataforma Unix/Linux entonces toda esta funcionalidad no está disponible . Si es así, compruebe el manual
Sin embargo, no intenta abordar la funcionalidad implementada por la clase de proceso .Net, que está estrechamente relacionada con la idea de Microsoft de que el programa es la GUI. Para trabajar con ventanas interactivas, entonces tendría que mirar los enlaces GTK o MSWindows disponibles como pernos.
+1 Buen punto. No limitaría las capacidades de la gestión de procesos a solo POSIX. También hay una cantidad sorprendente que puede hacer a lo largo de esas líneas en .NET en Windows. El problema es que PHP es muy limitado en ese aspecto. Para hacer algo más complejo que abrir/cerrar/cambiar prioridad básica, tendría que ejecutar comandos básicos de shell y analizar el stdr stdout sdtin que puede ser un dolor extremo. Es factible, simplemente no es fácil. –
Puede utilizar el objeto COM si (como su publicación lo implica) se está ejecutando en Windows (tenga en cuenta que no funcionará en absoluto en Linux, pero le da mucho que no podría hacer sin él)
$com = new COM('WScript.Shell');
$com->run('Path/To/Shell/Program', 0, false);
El comando de ejecución es detailed here.
En .NET La clase de proceso contiene varias propiedades/métodos útiles que permiten a los desarrolladores acceder proceso información relativa. ¿Tiene algún método o clase equivalente en PHP?
Probablemente obtendrías más/mejores respuestas si especificaras cuál de las propiedades/métodos le interesan. No soy un desarrollador de C# y tampoco estoy seguro de si esto es lo que está buscando, pero what the PHP Manual has to say about connection handling es esto:
Cuando un script PHP está funcionando normalmente el estado
NORMAL
, está activo. Si el cliente remoto desconecta la banderaABORTED
estado está encendida. Una desconexión cliente remoto es generalmente causada por el usuario pulsa en el botón STOP. Si el plazo impuesto por PHP (verset_time_limit()
) es golpeado, la bandera del estadoTIMEOUT
está encendida.
Puede comprobar el estado de la conexión con ... connection_status()
:
switch (connection_status())
{
case CONNECTION_NORMAL:
// ...
break;
case CONNECTION_ABORTED:
// ...
break;
case CONNECTION_TIMEOUT:
// ...
break;
}
El POSIX functions (disponible sólo en sistemas POSIX) proporcionan alguna información adicional. Además, algunos miscellaneous functions, específicamente sys_getloadavg()
y las funciones del sueño pueden ser útiles para hacer, dependiendo de lo que estás buscando.
¿Alguno método equivalente en PHP como C# método "Process.Start()".
Hay varias Program Execution functions, en concreto:
exec()
passthru()
proc_open()
shell_exec()
- Véase también el backtick operatorsystem()
En Windows también se puede utilizar el COM class para abrir el símbolo del sistema:
$cmd = new COM('WScript.Shell');
Además, si quieres estar a salvo de los ataques de inyección de código no se olvide que cualquier usuario suministrado entrada debe escaparse con escapeshellarg()
o escapeshellcmd()
.
- 1. ¿Hay un equivalente al urllib de python en c/C++?
- 2. ¿Hay un equivalente de str_replace en C++?
- 3. ¿Hay un equivalente de Ruby al extracto de PHP?
- 4. C# provocar un evento cuando un nuevo proceso comienza
- 5. ¿Hay un equivalente de C# de array_key_exists de PHP?
- 6. ¿Hay un equivalente al F # Seq.windowed en C#?
- 7. ¿Hay un C# equivalente al repetidor de salida STL?
- 8. ¿Hay un C++ equivalente al BigDecimal de Java?
- 9. PHP equivalente al método C# string.IsNullOrEmpty?
- 10. C# String.Format() ¿Equivalente en PHP?
- 11. ¿Hay un equivalente de C# de m_nCmdShow?
- 12. ¿Hay un equivalente a Groovy en C#?
- 13. ¿Hay un equivalente a typedef en C#?
- 14. ¿Hay un equivalente de estática de C en C#?
- 15. ¿Hay un equivalente de hash_hmac de PHP en Python/Django?
- 16. ¿Hay un equivalente en C para las plantillas de C++?
- 17. ¿PHP tiene un equivalente al operador || =?
- 18. ¿Hay un equivalente en jQuery a `preg_replace()` de PHP?
- 19. ¿Cuál es el equivalente de C# al "self ::" de PHP?
- 20. ¿Hay un equivalente al lanzamiento dinámico de C++ en Objective-C?
- 21. ¿Hay un equivalente en C para el módulo Perl's Carp?
- 22. Equivalente al comando C# 'as' en C++?
- 23. Delphi - ¿Hay algún equivalente al bloqueo de C#?
- 24. ¿Hay un JavaScript equivalente para C# 'params'?
- 25. ¿Hay un C++ equivalente a getcwd?
- 26. ¿Hay un Java equivalente a MISRA C?
- 27. ¿Tiene PHP un equivalente del #ifdef de C/C++?
- 28. ¿Hay un C# equivalente a IsDebuggerPresent()?
- 29. ¿Hay un equivalente estándar de C++ del Vector3 de C#?
- 30. ¿Hay un equivalente de los literales de cadena literal de C# en PHP?
creo que muchos de ellos se encuentran en la versión actual. Espacios de nombres en 5.3, y he usado constructores en mi código. – Puppy
@DeadMG actualizó la respuesta de precisión y la hizo más "a prueba de futuro". Cuando dije 'constructos' no quise decir 'constructores'. Al decir que PHP es tiene pocos 'construye' Estoy diciendo simplemente que la programación orientada a objetos está ahí, pero no lo es con todas las funciones de la manera que una aplicación Java/C#/Python programador podría esperar.OOP en PHP es bastante mínimo en comparación con la mayoría de los idiomas que afirman que son compatibles con OOP. –
@DeadMG "Creo que muchos de ellos están en la versión actual" sí, están allí pero no se usan en la biblioteca estándar. Para usar 'exec' no escriba algo como 'process :: exec()' porque los espacios de nombres y OOP no se usan en absoluto en la biblioteca estándar. Esencialmente, todas las funciones incorporadas de PHP viven en el espacio de nombres principal. Esa última oración es suficiente para hacer que muchos desarrolladores se avergüencen, pero para solucionarlo, los desarrolladores de PHP tendrían que volver a mapear todas las miles de funciones incorporadas. –