Ver Mensaje Individual
  #8 (permalink)  
Antiguo 21/11/2011, 04:03
Avatar de altex
altex
 
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 47
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: Escribir dentro de un string

Hola amigos,

parece que realmente no he conseguido expresar lo que quería, pero voy a dejar el codigo utilizado por si a alguien le sirve.

No modificaba en ningun momento la base de datos, simplemente quería que al mostrarse, se mostrara segun la version de la fecha indicada. Os dejo el codigo por si a alguien le puede servir algo.

Ejemplo: Tengo esto en la base de datos:

Cita:
<?xml version='1.0' encoding='UTF-8'?><root><static-content><![CDATA[<p>
<a href="/es/c/document_library/get_file?uuid=6258e760-a380-488d-ab01-3e8a025a1d63&amp;groupId=10157">
<img alt="" src="/es/c/document_library/get_file?uuid=6258e760-a380-488d-ab01-3e8a025a1d63&amp;groupId=10157" style="width: 1024px; height: 768px;" />link a imatge sdasd</a></p>]]></static-content></root>

y quiero que todo lo que contenga un uuid se ponga una version, es decir de esto:

Cita:
/es/c/document_library/get_file?uuid=6258e760-a380-488d-ab01-3e8a025a1d63&amp;groupId=10157
que pase a esto:

Cita:
/es/c/document_library/get_file?uuid=6258e760-a380-488d-ab01-3e8a025a1d63&version=1.4&amp;groupId=10157
segun la version que sea de la base de datos

Código PHP:
function versionador($cadena$fecha,$contenido_anterior){
            
            
//echo $cadena;
                
if(stripos($cadena,"uuid=")){
                    
//cortamos el contenido por el uuid en 2 trozos
                    
$partes explode("uuid=",$cadena,2);
                    
//el antes es la parte del contenido de antes del uuid
                    
$antes $partes[0]."uuid=";
                    
//el despues es el uuid mas todo lo demas
                    
$despues $partes[1];
                    
//partes2 tienes el uuid por un lado, y el resto del contenido por el otro
                    
$partes2 explode("&",$despues,2);
                    
$contenido $contenido_anterior.$antes;
                    
                    
//echo htmlentities($contenido)."<br>";
                    
$sql2="SELECT DISTINCT v.version FROM dlfileversion v WHERE v.createDate <='".$fecha."' AND name IN (SELECT name FROM dlfileentry
                        WHERE uuid_ = '"
.$partes2[0]."') ORDER BY createDate DESC LIMIT 1";
                    
//echo $sql2."<br>";

                        
$ver mysql_query($sql2);
                        
$contador=0;
                        while(
$v=mysql_fetch_array($ver)){                        
                            
//guardamos el uuid con la version y un & al final
                            
$imagen $partes2[0]."&version=".$v['version']."&".$partes[1];                            
                            
$contenido $contenido.$imagen;
                            
//echo htmlentities($contenido)."<br>";
                            
if(stripos($partes2[1],"uuid=")){
                                
versionador($partes2[1],$fecha,$contenido);
                                
$contenido $contenido.$partes2[1];
                                return 
$contenido
                            }
                        }
                    
                    return 
$contenido
                }else{
                    return 
$cadena;
                }
            } 

Última edición por altex; 21/11/2011 a las 04:08 Razón: ejemplo