php - remove - strip_tags wordpress
Formateador/embellecedor de código PHP y embellecimiento de php en general (14)
Aquí hay una clase de embellecedor de código php (PHP por supuesto):
http://www.codeassembly.com/A-php-code-beautifier-that-works/
y
demostración en línea:
¿Conoces alguna buena herramienta para formatear el desordenado código php? Preferiblemente un script para Aptana / Eclipse, pero una herramienta independiente también lo hará.
Si usa Zend Development Environment, puede usar la función de código de sangría (Ctrl + Shift + F).
Zend Development Environment ahora es un plugin de Eclipse, puede ejecutarlo junto con Aptana y solo usar su característica de código de sangría.
Todavía no me he actualizado al plugin de Eclipse, me encanta tanto el ZDE anterior. Aunque ahora que comencé a usar Eclipse para otros idiomas, estoy casi listo para dar el salto.
PHP Code Beautifier es una herramienta gratuita útil que debe hacer lo que está buscando, aunque su página de descarga requiere una cuenta para ser creada.
La herramienta ha sido rechazada en 3 versiones:
- Una versión de GUI que permite procesar el archivo visualmente.
- Una versión de línea de comandos que permite agruparse o integrarse con otras herramientas (CVS, SubVersion, IDE ...).
- Como una herramienta integrada de PHPEdit.
Básicamente, se convertirá:
if($code == BAD){$action = REWRITE;}else{$action = KEEP;}
for($i=0; $i<10;$i++){while($j>0){$j++;doCall($i+$j);if($k){$k/=10;}}}
dentro
if ($code == BAD) {
$action = REWRITE;
} else {
$action = KEEP;
}
for($i = 0; $i < 10;$i++) {
while ($j > 0) {
$j++;
doCall($i + $j);
if ($k) {
$k /= 10;
}
}
}
Bueno, aquí está mi guión muy básico y áspero:
#!/usr/bin/php
<?php
class Token {
public $type;
public $contents;
public function __construct($rawToken) {
if (is_array($rawToken)) {
$this->type = $rawToken[0];
$this->contents = $rawToken[1];
} else {
$this->type = -1;
$this->contents = $rawToken;
}
}
}
$file = $argv[1];
$code = file_get_contents($file);
$rawTokens = token_get_all($code);
$tokens = array();
foreach ($rawTokens as $rawToken) {
$tokens[] = new Token($rawToken);
}
function skipWhitespace(&$tokens, &$i) {
global $lineNo;
$i++;
$token = $tokens[$i];
while ($token->type == T_WHITESPACE) {
$lineNo += substr($token->contents, "/n");
$i++;
$token = $tokens[$i];
}
}
function nextToken(&$j) {
global $tokens, $i;
$j = $i;
do {
$j++;
$token = $tokens[$j];
} while ($token->type == T_WHITESPACE);
return $token;
}
$OPERATORS = array(''='', ''.'', ''+'', ''-'', ''*'', ''/'', ''%'', ''||'', ''&&'', ''+='', ''-='', ''*='', ''/='', ''.='', ''%='', ''=='', ''!='', ''<='', ''>='', ''<'', ''>'', ''==='', ''!=='');
$IMPORT_STATEMENTS = array(T_REQUIRE, T_REQUIRE_ONCE, T_INCLUDE, T_INCLUDE_ONCE);
$CONTROL_STRUCTURES = array(T_IF, T_ELSEIF, T_FOREACH, T_FOR, T_WHILE, T_SWITCH, T_ELSE);
$WHITESPACE_BEFORE = array(''?'', ''{'', ''=>'');
$WHITESPACE_AFTER = array('','', ''?'', ''=>'');
foreach ($OPERATORS as $op) {
$WHITESPACE_BEFORE[] = $op;
$WHITESPACE_AFTER[] = $op;
}
$matchingTernary = false;
// First pass - filter out unwanted tokens
$filteredTokens = array();
for ($i = 0, $n = count($tokens); $i < $n; $i++) {
$token = $tokens[$i];
if ($token->contents == ''?'') {
$matchingTernary = true;
}
if (in_array($token->type, $IMPORT_STATEMENTS) && nextToken($j)->contents == ''('') {
$filteredTokens[] = $token;
if ($tokens[$i + 1]->type != T_WHITESPACE) {
$filteredTokens[] = new Token(array(T_WHITESPACE, '' ''));
}
$i = $j;
do {
$i++;
$token = $tokens[$i];
if ($token->contents != '')'') {
$filteredTokens[] = $token;
}
} while ($token->contents != '')'');
} elseif ($token->type == T_ELSE && nextToken($j)->type == T_IF) {
$i = $j;
$filteredTokens[] = new Token(array(T_ELSEIF, ''elseif''));
} elseif ($token->contents == '':'') {
if ($matchingTernary) {
$matchingTernary = false;
} elseif ($tokens[$i - 1]->type == T_WHITESPACE) {
array_pop($filteredTokens); // Remove whitespace before
}
$filteredTokens[] = $token;
} else {
$filteredTokens[] = $token;
}
}
$tokens = $filteredTokens;
function isAssocArrayVariable($offset = 0) {
global $tokens, $i;
$j = $i + $offset;
return $tokens[$j]->type == T_VARIABLE &&
$tokens[$j + 1]->contents == ''['' &&
$tokens[$j + 2]->type == T_STRING &&
preg_match(''/[a-z_]+/'', $tokens[$j + 2]->contents) &&
$tokens[$j + 3]->contents == '']'';
}
// Second pass - add whitespace
$matchingTernary = false;
$doubleQuote = false;
for ($i = 0, $n = count($tokens); $i < $n; $i++) {
$token = $tokens[$i];
if ($token->contents == ''?'') {
$matchingTernary = true;
}
if ($token->contents == ''"'' && isAssocArrayVariable(1) && $tokens[$i + 5]->contents == ''"'') {
/*
* Handle case where the only thing quoted is the assoc array variable.
* Eg. "$value[key]"
*/
$quote = $tokens[$i++]->contents;
$var = $tokens[$i++]->contents;
$openSquareBracket = $tokens[$i++]->contents;
$str = $tokens[$i++]->contents;
$closeSquareBracket = $tokens[$i++]->contents;
$quote = $tokens[$i]->contents;
echo $var . "[''" . $str . "'']";
$doubleQuote = false;
continue;
}
if ($token->contents == ''"'') {
$doubleQuote = !$doubleQuote;
}
if ($doubleQuote && $token->contents == ''"'' && isAssocArrayVariable(1)) {
// don''t echo "
} elseif ($doubleQuote && isAssocArrayVariable()) {
if ($tokens[$i - 1]->contents != ''"'') {
echo ''" . '';
}
$var = $token->contents;
$openSquareBracket = $tokens[++$i]->contents;
$str = $tokens[++$i]->contents;
$closeSquareBracket = $tokens[++$i]->contents;
echo $var . "[''" . $str . "'']";
if ($tokens[$i + 1]->contents != ''"'') {
echo '' . "'';
} else {
$i++; // process "
$doubleQuote = false;
}
} elseif ($token->type == T_STRING && $tokens[$i - 1]->contents == ''['' && $tokens[$i + 1]->contents == '']'') {
if (preg_match(''/[a-z_]+/'', $token->contents)) {
echo "''" . $token->contents . "''";
} else {
echo $token->contents;
}
} elseif ($token->type == T_ENCAPSED_AND_WHITESPACE || $token->type == T_STRING) {
echo $token->contents;
} elseif ($token->contents == ''-'' && in_array($tokens[$i + 1]->type, array(T_LNUMBER, T_DNUMBER))) {
echo ''-'';
} elseif (in_array($token->type, $CONTROL_STRUCTURES)) {
echo $token->contents;
if ($tokens[$i + 1]->type != T_WHITESPACE) {
echo '' '';
}
} elseif ($token->contents == ''}'' && in_array($tokens[$i + 1]->type, $CONTROL_STRUCTURES)) {
echo ''} '';
} elseif ($token->contents == ''='' && $tokens[$i + 1]->contents == ''&'') {
if ($tokens[$i - 1]->type != T_WHITESPACE) {
echo '' '';
}
$i++; // match &
echo ''=&'';
if ($tokens[$i + 1]->type != T_WHITESPACE) {
echo '' '';
}
} elseif ($token->contents == '':'' && $matchingTernary) {
$matchingTernary = false;
if ($tokens[$i - 1]->type != T_WHITESPACE) {
echo '' '';
}
echo '':'';
if ($tokens[$i + 1]->type != T_WHITESPACE) {
echo '' '';
}
} elseif (in_array($token->contents, $WHITESPACE_BEFORE) && $tokens[$i - 1]->type != T_WHITESPACE &&
in_array($token->contents, $WHITESPACE_AFTER) && $tokens[$i + 1]->type != T_WHITESPACE) {
echo '' '' . $token->contents . '' '';
} elseif (in_array($token->contents, $WHITESPACE_BEFORE) && $tokens[$i - 1]->type != T_WHITESPACE) {
echo '' '' . $token->contents;
} elseif (in_array($token->contents, $WHITESPACE_AFTER) && $tokens[$i + 1]->type != T_WHITESPACE) {
echo $token->contents . '' '';
} else {
echo $token->contents;
}
}
¿Qué hay de este?
http://universalindent.sourceforge.net/
Combina un montón de formateadores, y generará los scripts que necesita para que pueda pasarlos y hacer que los miembros de su equipo los usen antes de comprometerse la próxima vez ... Aunque ... los formateadores pueden estropear su código y renderizarlo inutilizable...
Hay un módulo de pera que formatea tu código. Embellecimiento de PHP
http://en.sourceforge.jp/projects/pdt-tools/
^^^ te dará un formateador CTRL + SHIFT + F Eclipse / Aptana PHP adecuado como Java.
Vea aquí para la ayuda de instalación.
Nuestro formateador de PHP formateará su código de manera confiable. Utiliza un front-end basado en el compilador para analizar el código, por lo que no malinterpreta el código y lo daña. En consecuencia, su salida formateada siempre funciona.
La solución más simple es simplemente usar un IDE que tenga esto incorporado. Si va a escribir código en PHP regularmente, simplemente suelte los $ 60 para PHPStorm. No te arrepentirás.
http://www.jetbrains.com/phpstorm/
Te permite formatear tu código como prefieras usando un atajo de teclado simple en el nivel de archivo o directorio, y tiene un millón de otras características excelentes.
phpformatter.com funciona mejor
"Este formateador PHP en línea gratuito está diseñado para que puedas embellecer todo tu script PHP con el estilo que prefieras"
Esta es una excelente pregunta. Tengo una aplicación que lee json y saca php y html y css. Ejecuto un programa y genero docenas (¿cientos?) De archivos. Espero que la respuesta aquí sea útil.
Comencé mi proyecto usando heredocs, archivos especiales de inclusión, metacaracteres, etc. pero eso rápidamente se convirtió en un desastre. Quería una solución independiente que no requiriera framework o ide. Así que eliminé todos los archivos heredoc y otros elementos no deseados y creé una clase de almacenamiento de texto genérico sin preocuparme por el formateo. Todo puede ser una línea para todo lo que me importa. Para html, hago tidy () incorporado. Para php, utilizo phpstylist . phpstylist es más antiguo pero aún funciona bien para el formato php.
Para configurar las opciones de phpstylist, utilicé UniversalIndent (actualizado en enero de 2012) en Windows gui.
UniversalStylist enumera 24 (!) Programas formateadores (c, php, ruby, html, ...). Específicamente, conoce las opciones de phpstylist y le ofrece una actualización en vivo de un archivo al activar y desactivar las opciones. Muy bien. Luego, cuando tenga su estilo, tiene la opción de guardar las opciones de línea de comando y generar un script. Para algunas opciones de formato, deberá agregar rutas a Perl, Python, etc.
Si está usando Windows y quiere probar phpstylist con UniversalIndent, simplemente agregue el directorio de php.exe a su ruta de env. Yo uso ampps así que el mío está configurado en c: / ampps / php.
No fue muy fácil encontrar una buena solución sólida. También me interesa escuchar lo que otras personas hacen para formatear por lotes lo más simple posible de archivos php / html autogenerados para la revisión del código y para fines de archivo.
Use NetBeans PHP y presione alt + shift + F.
He estado teniendo problemas para encontrar un formateador libre decente para PHP, hay muchas herramientas en línea y de línea de comandos, pero parece que no funcionan por alguna razón, los resultados siguen llenos de mala definición. con combinaciones de pestañas y espacios, ¡y nunca reciben los frenos como a ti te gusta!
Probé el fragmento de arriba y tampoco me funcionó, sangría aún llena de espacios y pestañas mezcladas.
Así que también he intentado escribir uno simple, este solo usa todos los regex, sin magia de compilador sofisticada, por lo que es posible que pueda romper cosas, y todavía está muy beta y está siendo probado en varios códigos desordenados. La interfaz también es muy básica en este momento, pero debería mejorar en los próximos días.
Está cableado para las convenciones de MediaWiki, pero puedes modificarlo bastante fácilmente (puedo agregar opciones más adelante).