php - the_tags - wordpress get first tag
Dar sentido a la salida print_r (3)
Hay casos en que la salida de print_r es muy complicada, larga y difícil de leer, por ejemplo, objetos, matrices de anidamiento, objetos de anidación, matrices de anidamiento, ...
¿Hay una biblioteca o herramientas para ayudar a los desarrolladores a leer esta información? Algo así como el inspector DOM para HTML?
Instale el Módulo Devel y use la función dpm()
en lugar de print_r
... imprime una representación encantadora de su variable (ya sea cadena, objeto, matriz, etc.) en el área estándar de mensajes de Drupal.
Hace uso de la maravillosa Biblioteca Krumo y es totalmente interactivo (puede expandir / colapsar objetos / matrices). Algunos podrían decir que usen etiquetas <pre>
para esto (y normalmente podrían estar en lo cierto) pero como esta solución ya existe para Drupal, estarían locos por no usarla
¡Nunca volverás a usar print_r
nuevamente, lo prometo!
Regularmente uso esta función cuando selecciono la salida de print_r. Es una fantástica alternativa rápida.
http://www.php.net/manual/en/function.print-r.php#90759 Crédito para bob
<?php
function print_r_tree($data)
{
// capture the output of print_r
$out = print_r($data, true);
// replace something like ''[element] => <newline> ('' with <a href="javascript:toggleDisplay(''...'');">...</a><div id="..." style="display: none;">
$out = preg_replace(''/([ /t]*)(/[[^/]]+/][ /t]*/=/>[ /t]*[a-z0-9 /t_]+)/n[ /t]*/(/iUe'',"''//1<a href=/"javascript:toggleDisplay(/'''.(/$id = substr(md5(rand().''//0''), 0, 7)).''/');/">//2</a><div id=/"''./$id.''/" style=/"display: none;/">''", $out);
// replace '')'' on its own on a new line (surrounded by whitespace is ok) with ''</div>
$out = preg_replace(''/^/s*/)/s*$/m'', ''</div>'', $out);
// print the javascript function toggleDisplay() and then the transformed output
echo ''<script language="Javascript">function toggleDisplay(id) { document.getElementById(id).style.display = (document.getElementById(id).style.display == "block") ? "none" : "block"; }</script>''."/n$out";
}
?>
Puedes ponerlo en el archivo template.php de tu tema si estás usando Drupal como lo implican las etiquetas.
La página de manual para print_r
tiene muchos comentarios con funciones que podrían ayudarlo.
Por ejemplo:
- Federico Bricker 29-Jun-2009 11:02 (Publicación # 91861) ver a continuación.
- Bob 08-May-2009 10:19 (Publicación # 90759)
- afisher8 at cox dot net 17-Dic-2008 04:53 (Publicación n. ° 87705)
- y muchos más ...
Este es el que utilicé algunas veces:
<?php
function print_nice($elem,$max_level=10,$print_nice_stack=array()){
if(is_array($elem) || is_object($elem)){
if(in_array(&$elem,$print_nice_stack,true)){
echo "<font color=red>RECURSION</font>";
return;
}
$print_nice_stack[]=&$elem;
if($max_level<1){
echo "<font color=red>nivel maximo alcanzado</font>";
return;
}
$max_level--;
echo "<table border=1 cellspacing=0 cellpadding=3 width=100%>";
if(is_array($elem)){
echo ''<tr><td colspan=2 style="background-color:#333333;"><strong><font color=white>ARRAY</font></strong></td></tr>'';
}else{
echo ''<tr><td colspan=2 style="background-color:#333333;"><strong>'';
echo ''<font color=white>OBJECT Type: ''.get_class($elem).''</font></strong></td></tr>'';
}
$color=0;
foreach($elem as $k => $v){
if($max_level%2){
$rgb=($color++%2)?"#888888":"#BBBBBB";
}else{
$rgb=($color++%2)?"#8888BB":"#BBBBFF";
}
echo ''<tr><td valign="top" style="width:40px;background-color:''.$rgb.'';">'';
echo ''<strong>''.$k."</strong></td><td>";
print_nice($v,$max_level,$print_nice_stack);
echo "</td></tr>";
}
echo "</table>";
return;
}
if($elem === null){
echo "<font color=green>NULL</font>";
}elseif($elem === 0){
echo "0";
}elseif($elem === true){
echo "<font color=green>TRUE</font>";
}elseif($elem === false){
echo "<font color=green>FALSE</font>";
}elseif($elem === ""){
echo "<font color=green>EMPTY STRING</font>";
}else{
echo str_replace("/n","<strong><font color=red>*</font></strong><br>/n",$elem);
}
}
?>