Hola,
tengo el siguiente problema, me han pasado un proyecto de una empresa externa, que para variar, no esta documentado. el caso es, que debo modificar funcionalidades del proyecto y debo recorrer cada uno de los modulos para identificar que funciones y archivos php, css y js, que se estan utilizando. mi problema es que tambien se utilizan menus dinamicos que se crean a partir de los arhivos js.
hasta el momento, he logrado recorer un archivo PHP,JS y CSS, que utilicen una referencia directa a los archivos. no asi, con el codigo generado por PHP en HTML
coloco mi ejemplo:
Código PHP:
<?php
function fnRecorrer_PHP($pagina,$historial,$tabla,$dir){
$historial= $historial . "/" . $pagina;
echo("$tabla</tr><tr>");
if(file_exists( $pagina )){
}else{
if(file_exists( "$dir/$pagina" )){
$pagina="$dir/$pagina";
}else{
echo("||| NO existe [$pagina]");
}
}
$vlineas = file($pagina);
$bHayDatos="no";
$iaa=0;
$color_php="bgcolor='yellow'";
$color_css="bgcolor='lime'";
$color_js="bgcolor='aqua'";
foreach ($vlineas as $sLinea){
$iaa++;
$variable= strtolower(trim($sLinea));
$buscar="x*x*x*x*x*x";
$buscar_fin=")";
$num_fin=1;
$color=$color_php;
if((is_numeric(strpos($variable, 'include_once('))==1)&&(is_numeric(strpos($variable, '.php'))==1)){
$buscar="include_once(";
}else{
if((is_numeric(strpos($variable, 'include(' ))==1)&&(is_numeric(strpos($variable, '.php'))==1)){
$buscar="include("; }
}
if((is_numeric(strpos($variable, 'require_once('))==1)&&(is_numeric(strpos($variable, '.php'))==1)){
$buscar="require_once(";
}else{
if((is_numeric(strpos($variable, 'require(' ))==1)&&(is_numeric(strpos($variable, '.php'))==1)){
$buscar="require(";}
}
if((is_numeric(strpos($variable, 'href='))==1)&&(is_numeric(strpos($variable, '.css'))==1)){
$buscar="href=";
$buscar_fin=".css";
$num_fin=-4;
$color=$color_css;
}
if((is_numeric(strpos($variable, 'src='))==1)&&(is_numeric(strpos($variable, '.js'))==1)){
$buscar="src=";
$buscar_fin=".js";
$num_fin=-3;
$color=$color_js;
}
if(is_numeric(strpos($variable, $buscar))==1){
$pos_ini=strpos($variable, $buscar)+strlen($buscar)+1;
$pos_fin=strpos($variable, $buscar_fin) - ($pos_ini+$num_fin);
$subpagina=substr("$variable",$pos_ini,$pos_fin );
$tabla2=$tabla."<td>$iaa</td><td $color>$subpagina</td>";
$dir2=$dir;
if(dirname($subpagina)!="."){
$dir2=dirname($subpagina);
}
fnRecorrer_PHP($subpagina,$historial,$tabla2,$dir2);
}
}
}
?>
<html>
<head>
</head>
<body>
<br>Proceso de revisión de include y required para identificarlos<br>
<hr>
<br><br>
<table border="1"><tr>
<td bgcolor="yellow"> PHP</td>
<td bgcolor="lime"> css</td>
<td bgcolor="aqua"> js</td>
</tr><tr>
<?php
$color_php="bgcolor='yellow'";
$color_css="bgcolor='lime'";
$color_js="bgcolor='aqua'";
fnRecorrer_PHP("index.php","","<td $color_php>index.php</td>","");
echo("<br><hr><br>");
fnRecorrer_PHP("main.php","","<td $color_php>main.php</td>","");
?>
</tr></table>
</body>
</html>
Es bastante rustico, ya que llevo un día codificando.