Ayudita con este fragmento de codigo

  • Autor Autor blogers
  • Fecha de inicio Fecha de inicio
B

blogers

Pi
SEO
Bueno vuelvo con uds a pedir una minima ayuda por favor [MENTION=9679]cicklow[/MENTION] poderoso maste de php que puedo hacer en este caso tengo este code

PHP:
// ?page=photo-1234-properties is an clean alias of
// ?page=photo&image_id=1234&tab=properties
if (isset($_GET['page']) and preg_match('/^photo-(\d+)(?:-(.*))?$/', $_GET['page'], $matches))
{
  $_GET['page'] = 'photo';
  $_GET['image_id'] = $matches[1];
  if (isset($matches[2]))
  {
    $_GET['tab'] = $matches[2];
  }
}


Lo que yo busco que cuando suba fotos automaticamente si la foto va asi

mi_foto.jpg o bien mi-foto-bonita.jpg


El scrip pone el titulo con esos guiones pero algo se puede hacer para que no ponga el titulo con esos guines al subir las imagenes no se que solucion se pueda tener

- - - Actualizado - - -

Parece que aqui hace el insert del titulo de la imagen colegitas

PHP:
    // database registration
    $file = pwg_db_real_escape_string(isset($original_filename) ? $original_filename : basename($file_path));
    $insert = array(
      'file' => $file,
      'name' => get_name_from_file($file),
      'date_available' => $dbnow,
      'path' => preg_replace('#^'.preg_quote(PHPWG_ROOT_PATH).'#', '', $file_path),
      'filesize' => $file_infos['filesize'],
      'width' => $file_infos['width'],
      'height' => $file_infos['height'],
      'md5sum' => $md5sum,
      'added_by' => $user['id'],
      'rotation' => $rotation,
      );

    if (isset($level))
    {
      $insert['level'] = $level;
    }

- - - Actualizado - - -

Aca encontre otraq parte del archivo

http://puu.sh/e7TAf/b653958ef0.txt
 
Última edición:
pwg_db_real_escape_string esa funcion le da el nombre a la imagen...
 
get_name_from_file()

Esa función toma el nombre de la imagen, agregale un "str_replace".

- - - Actualizado - - -

pwg_db_real_escape_string esa funcion le da el nombre a la imagen...

Me parece que esa limpia la string.
 
Mira encontre el bueno de tantas pistas que busque estuve toda la tarde archivo por archivo


mira es aqui men


PHP:
'name'           => get_name_from_file($filename)

Como le meto o acomodo el code que dices colega (str_replace)

te lo agradeceria mucho de ante mano

get_name_from_file()

Esa función toma el nombre de la imagen, agregale un "str_replace".

- - - Actualizado - - -



Me parece que esa limpia la string.

- - - Actualizado - - -

Ya lo puse asi no se si este bien ?

PHP:
      'name'           => get_name_from_file (str_replace('-', ' ', $filename) ),
 
Mira encontre el bueno de tantas pistas que busque estuve toda la tarde archivo por archivo


mira es aqui men


PHP:
'name'           => get_name_from_file($filename)

Como le meto o acomodo el code que dices colega (str_replace)

te lo agradeceria mucho de ante mano


PHP:
'name'           => get_name_from_file(str_replace("-"," ",$filename))


Remplaza los guiones "-" por espacios " ".
 
Gracias colega pero si viene una imagen asi men caca-caca_mas-caca.jpg


PHP:
'name'           => get_name_from_file (str_replace('-', ' ', $filename) ),

PHP:
'name'           => get_name_from_file(str_replace("-"," ",$filename))


Remplaza los guiones "-" por espacios " ".
 
Yo sugería agregarlo a la función pero supongo es lo mismo...

Yo lo dejaría así:

PHP:
'name' => str_replace(array('-', '_'), ' ', get_name_from_file($filename))
 
Gracias colega pero si viene una imagen asi men caca-caca_mas-caca.jpg

[MENTION=42233]zcriptz[/MENTION] te a respondido, pero bueno existen infinidad de posibilidades como que la imagen tengo otra signo raro.

Entonces creo lo mejor seria crear una funcion propia que funcione a la inversa, para que solo obtenga los caracteres que le indiques desde la función, eliminando o remplazando el resto de caracteres que no estén en tu función por espacios y después crear un bucle donde remplazas por un espacio si existen más de 2 juntos.

Ejemplo de lo que hablo:

PHP:
function legales ($texto){ abcmasca  }
// no incluyendo la ñ

Ej: caca---caca_%mas-cañca.jpg

Función: Quitar caracteres no indicados.
legales ($nombreimagen);
PHP:
"caca   caca  mas ca ca"

Bucle función: Remplazar por 1 espacio, si tiene más de 2 espacios juntos
espacioslegales ($nombreimagen);
PHP:
"caca caca mas ca ca"

legales ($nombreimagen);
También podría agregar a la función que las ñ sean remplazadas por n
PHP:
"caca caca mas canca"

O simplemente agregando la ñ a la función, como nuevo carácter

PHP:
function legales ($texto){ abcmascañ  }
// ñ incluida
legales ($nombreimagen);
PHP:
"caca caca mas cañca"

Por falta de tiempo no te creo la función de una, pero bueno espero haberte encaminado o el ejemplo de zcriptz te funcione.

Hace un tiempo cree una función parecida para que solo permitiera ciertos caracteres, incluyendo numero, acentos y espacios, podrías modificarla y crear la que necesitas.

http://forobeta.com/php/365322-ayuda-proteger-_get-php.html#post2967613


PHP:
function permitidos($textos){

 $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZñáéúóí.,-1234567890 ";
   for ($i=0; $i<strlen($textos); $i++){
      if (strpos($permitidos, substr($textos,$i,1))===false){
         return true;
      }
   } 
}

Devuelve true si el texto esta dentro de los caracteres permitidos.

Algo así seria tu función, solo que deberías de adaptarle más.


PD: Puede que existan mejores formas y más fáciles, para realizar lo que pides.

Saludos.
 
Última edición:
[MENTION=42233]zcriptz[/MENTION] te a respondido, pero bueno existen infinidad de posibilidades como que la imagen tengo otra signo raro.

Entonces creo lo mejor seria crear una funcion propia que funcione a la inversa, para que solo obtenga los caracteres que le indiques desde la función, eliminando o remplazando el resto de caracteres que no estén en tu función por espacios y después crear un bucle donde remplazas por un espacio si existen más de 2 juntos.

Ejemplo de lo que hablo:

PHP:
function legales ($texto){ abcmasca  }
// no incluyendo la ñ

Ej: caca---caca_%mas-cañca.jpg

Función: Quitar caracteres no indicados.
legales ($nombreimagen);
PHP:
"caca   caca  mas ca ca"

Bucle función: Remplazar por 1 espacio, si tiene más de 2 espacios juntos
espacioslegales ($nombreimagen);
PHP:
"caca caca mas ca ca"

legales ($nombreimagen);
También podría agregar a la función que las ñ sean remplazadas por n
PHP:
"caca caca mas canca"

O simplemente agregando la ñ a la función, como nuevo carácter

PHP:
function legales ($texto){ abcmascañ  }
// ñ incluida
legales ($nombreimagen);
PHP:
"caca caca mas cañca"

Por falta de tiempo no te creo la función de una, pero bueno espero haberte encaminado o el ejemplo de zcriptz te funcione.

Hace un tiempo cree una función parecida para que solo permitiera ciertos caracteres, incluyendo numero, acentos y espacios, podrías modificarla y crear la que necesitas.

http://forobeta.com/php/365322-ayuda-proteger-_get-php.html#post2967613


PHP:
function permitidos($textos){

 $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZñáéúóí.,-1234567890 ";
   for ($i=0; $i<strlen($textos); $i++){
      if (strpos($permitidos, substr($textos,$i,1))===false){
         return true;
      }
   } 
}

Devuelve true si el texto esta dentro de los caracteres permitidos.

Algo así seria tu función, solo que deberías de adaptarle más.


PD: Puede que existan mejores formas y más fáciles, para realizar lo que pides.

Saludos.

¿No sería mejor usar preg_match?
 
¿No sería mejor usar preg_match?

Bueno creo que sí, pero para mi es un lio las expresiones regulares, no quedan como quiero. 😕

Tengo que aprender a utilizarlas bien.

Si existen muchas maneras de hacer lo que pide [MENTION=3092]blogers[/MENTION] pero tal vez creo, que la mejor seria crear una expresión regular como mencionas.

Saludos.
 
Gracias [MENTION=42233]zcriptz[/MENTION] [MENTION=41434]WWWW[/MENTION] Me ayudo mucho todo y todas fyncionaron 🙂
 

Temas similares

Atrás
Arriba