Foros del Web » Programando para Internet » PHP »

Recortar un texto

Estas en el tema de Recortar un texto en el foro de PHP en Foros del Web. Buenas tardes a todos Necesito cortar un texto y despues de haberlo probado infinidad de veces no me sale a ver si alguien me puede ...
  #1 (permalink)  
Antiguo 31/07/2011, 11:51
lucasabogado
Invitado
 
Mensajes: n/a
Puntos:
Recortar un texto

Buenas tardes a todos

Necesito cortar un texto y despues de haberlo probado infinidad de veces no me sale a ver si alguien me puede ayudar por favor

el texto a recortar seria

este:

Código PHP:
<?php echo producto_titulo(); ?>
y lo quiero adaptar en este :


Código PHP:
<?php
function cut_string($string$charlimit)
{
if(
substr($string,$charlimit-1,1) != ' ')
{
$string substr($string,'0',$charlimit);
$array explode(' ',$string);
array_pop($array);
$new_string implode(' ',$array);

return 
$new_string.' ...';
}
else

return 
substr($string,'0',$charlimit-1).' ...';
}
}

//adaptarlo aqui pero no me sale
$cadena = echo wpsc_producto_titulo();

//para que aparezca aqui
echo cut_string($cadena5);
?>

gracias de antemano y saludos
  #2 (permalink)  
Antiguo 01/08/2011, 11:06
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
Respuesta: Recortar un texto

No sé si es lo que necesitas, pero hay una funcion llamada substr. La idea de esta función es pasarle una cadena, decirle de donde empieza a "cortar" e indicarle o no el límite de corte. Guardando la subtring resultante en una variable.
Un ejemplo:

Código PHP:
Ver original
  1. $cadena = "Hola Mundo!";
  2. /*corto cadena desde la pos 0 hasta la 5, inclusive, guardo el resultado en cadena2 */
  3. $cadena2 = substr($cadena,0,5);
  4. /* cadena2 imprimiría "Hola M"*/
  5. echo $cadena2;

Salutes!.
  #3 (permalink)  
Antiguo 02/08/2011, 09:27
lucasabogado
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recortar un texto

Muchas gracias por tu aportacion pero no me sirve

ya que lo que yo necesito es

Código PHP:
$cadena = <?php echo producto_titulo(); ?>
porque dentro de
Código PHP:
<?php echo producto_titulo(); ?>
hay un texto que es demasiado largo y este es el que yo necesito cortar.

Supongo que habria que transformarlo de alguna manera para adecuarlo entre los corchetes.

Pero no tengo ni idea de como hacerlo estoy seguro de que hay alguien que lo sabe.

Muchisimas gracias a todos de antemano para mas aportaciones

Saludos
  #4 (permalink)  
Antiguo 02/08/2011, 10:03
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Recortar un texto

Esto no tiene sentido:
$cadena = <?php echo producto_titulo(); ?>

Tendrás que hacer esto en todo caso:
$cadena = producto_titulo();

Y luego coger lo que quieras con substr, que te lo han explicado, pero creo que ni lo has leído.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 02/08/2011, 17:16
lucasabogado
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recortar un texto

Eso ya lo se que no tiene sentido pero de la manera que dices tu vgonga1986

tambien lo he probado y el resultado es NADA y que sepas que cuando estoy

interesado en algo mio me LEO HASTA LA LETRA PEQUEÑA pero gracias de todas

formas la cuestion aunque yo no entiendo mucho y por eso pido vuestra ayuda

es que creo que hay que convertir ese dichoso
Código PHP:
<?php echo producto_titulo(); ?>
en algo para que funcione con el
Código PHP:
$cadena 

Saludos
  #6 (permalink)  
Antiguo 02/08/2011, 18:29
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Recortar un texto

Leo y leo y no le encuentro sentido a esto. Si ya tienes una función que recorta el texto cut_string(). También tienes otra función llamada producto_titulo() que debe retornar el string a recortar.

Código PHP:
Ver original
  1. <?php
  2.  
  3. //La función producto_titulo debe retornar el string a recortar.
  4.  
  5. function producto_titulo() {
  6.     $texto = 'Este es mi text largo que quiero recortar.';
  7.     return $texto;
  8. }
  9.  
  10. $cadena = producto_titulo();
  11.  
  12. echo cut_string($cadena, 5);

http://www.php.net/manual/es/functions.returning-values.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 02/08/2011 a las 20:04 Razón: Link
  #7 (permalink)  
Antiguo 03/08/2011, 02:53
lucasabogado
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recortar un texto

Gracias amigos por vuestras aportaciones

Creo que el problema aqui es que seguramente no lo estoy exponiendo todo claro

para que me entendais

Dentro de mi programa no hay absolutamente nada de esto de lo que sigue a continuacion:

<?php
Código PHP:
function cut_string($string$charlimit

if(
substr($string,$charlimit-1,1) != ' '

$string substr($string,'0',$charlimit); 
$array explode(' ',$string); 
array_pop($array); 
$new_string implode(' ',$array); 

return 
$new_string.' ...'

else 
{  
return 
substr($string,'0',$charlimit-1).' ...'



//adaptarlo aqui pero no me sale 
$cadena "texto a cortar"

//para que aparezca aqui 
echo cut_string($cadena5); 
?> 



lo que si que hay en mi programa es un fragmento como lo que sigue :

Código PHP:
<?php if( wpsc_product_on_special() ) echo '          <div class="sale-icon-big">Sale!</div>'?>
</div><!--close imagecol-->

<div class="producttext productcol">            

<h2 class="prodtitles no-cufon">

<?php echo wpsc_the_product_title(); ?>  /*  ESTE TEXTO QUIERO CORTAR */
<?php if (wpsc_have_custom_meta()) : ?>
<div class="rating">
<div class="custom_meta">
<?php while ( wpsc_have_custom_meta() ) : wpsc_the_custom_meta(); ?>
<p><strong><?php echo wpsc_custom_meta_name(); ?>: </strong><?php echo wpsc_custom_meta_value(); ?></p>
<?php endwhile; ?>
</div><!--close custom_meta-->
</div>
<?php endif; ?>
y en la 5ª linea donde dice :

Código PHP:
<?php echo wpsc_the_product_title(); ?>

ese es el texto que quiro cortar porque claro nunca es el mismo si no lo pondria entre corchetes

a ver si ahora lo he explicado mas claramente


saludos y gracias
  #8 (permalink)  
Antiguo 03/08/2011, 03:33
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Recortar un texto

Y dónde tienes esa función y qué hace? wpsc_the_product_title();
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #9 (permalink)  
Antiguo 04/08/2011, 11:46
lucasabogado
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recortar un texto

Este script pertenece a una web tipo tienda online y es el wpsc-single_product.php en el cual muestra las imagenes del producto precio con descuentos si los hay descripcion del producto y el TITULO del producto y este titulo es el que quiero recortar si estuviera entre "corchetes" lo tendria bastante claro pero al estar en php
Código PHP:
<?php echo wpsc_the_product_title(); ?>
no consigo extraer el titulo concretamente es este el script:

Código PHP:
<?php

global $wp_query;


$image_width  get_option'single_view_image_width' );
$image_height get_option'single_view_image_height' );

clear('space');
?>

<div class="inner layout-sidebar-no">
<div class="hentry">
<div id="single_product_page_container">

<?php
// Breadcrumbs
wpsc_output_breadcrumbs( array( 'before-breadcrumbs' => '''after-breadcrumbs' => '' ) );

// Plugin hook for adding things to the top of the products page, like the live search
do_action'wpsc_top_of_products_page' );
?><br /><br />

<div class="single_product_display group productdisplay">
<?php
/**
* Start the product loop here.
* This is single products view, so there should be only one
*/

while ( wpsc_have_products() ) : wpsc_the_product(); ?>

<div class="textcol">    <!-- textcol -->
<div class="imagecol">
<?php if ( wpsc_the_product_thumbnail() ) : ?>

<a rel="<?php echo wpsc_the_product_title(); ?>" class="<?php echo wpsc_the_product_image_link_classes(); ?>" href="<?php echo wpsc_the_product_image(); ?>">
<img class="product_image" id="product_image_<?php echo wpsc_the_product_id(); ?>" alt="<?php echo wpsc_the_product_title(); ?>" title="<?php echo wpsc_the_product_title(); ?>" src="<?php echo wpsc_the_product_thumbnail(get_option('product_image_width'),get_option('product_image_height'),'','single'); ?>"/>
</a>
<?php 
if ( function_exists'gold_shpcrt_display_gallery' ) )
echo 
gold_shpcrt_display_gallerywpsc_the_product_id() );
?>
<?php 
else: ?>
<a href="<?php echo wpsc_the_product_permalink(); ?>">
<img class="no-image" id="product_image_<?php echo wpsc_the_product_id(); ?>" alt="No Image" title="<?php echo wpsc_the_product_title(); ?>" src="<?php echo get_bloginfo('template_url') . '/images/no_image.jpg'?>" width="<?php echo get_option('product_image_width'); ?>" height="<?php echo get_option('product_image_height'); ?>" />
</a>
<?php endif; ?>

<?php if( wpsc_product_on_special() ) echo '          <div class="sale-icon-big">Sale!</div>'?>
</div><!--close imagecol-->

<div class="producttext productcol">            

<h2 class="prodtitles no-cufon">







<?php echo wpsc_the_product_title(); ?><br /><br />


<?php /*
function cut_string($string, $charlimit)
{
if(substr($string,$charlimit-1,1) != ' ')
{
$string = substr($string,'0',$charlimit);
$array = explode(' ',$string);
array_pop($array);
$new_string = implode(' ',$array);

return $new_string.' ...';
}
else

return substr($string,'0',$charlimit-1).' ...';
}
}

//adaptarlo aqui pero no me sale
$cadena = wpsc_the_product_title();







//para que aparezca aqui
echo cut_string($cadena, 5);
*/
?>












<?php if (wpsc_have_custom_meta()) : ?>
<div class="rating"><!-- linea -->
<div class="custom_meta">
<?php while ( wpsc_have_custom_meta() ) : wpsc_the_custom_meta(); ?>
<p><strong><?php echo wpsc_custom_meta_name(); ?>: </strong><?php echo wpsc_custom_meta_value(); ?></p>
<?php endwhile; ?>
</div><!--close custom_meta-->
</div>
<?php endif; ?>                


<!--    <?php echo str_replace('>' __'Edit''wpsc' ) . '<''><img src="' get_template_directory_uri() . '/images/icons/pencil16.png" alt="' __'Edit''wpsc' ) . '" /><'wpsc_edit_the_product_link()); ?>-->
</h2>

<?php do_action('wpsc_product_before_description'wpsc_the_product_id(), $wp_query->post); ?>
<!--        <div class="rating">-->
<div class="product_description">
<?php echo do_shortcodewpsc_the_product_description() ); ?>
</div><!--close product_description -->
<!--        </div>-->
<?php do_action'wpsc_product_addons'wpsc_the_product_id() ); ?>        

<?php if ( wpsc_the_product_additional_description() ) : ?>
<div class="single_additional_description">
<p><?php echo do_shortcodewpsc_the_product_additional_description() ); ?></p>
</div><!--close single_additional_description-->
<?php endif; ?>        

<?php do_action'wpsc_product_addon_after_descr'wpsc_the_product_id() ); ?>

<?php
/**
* Custom meta HTML and loop
*/
?>


<?php if(wpsc_show_stock_availability()): ?>
<?php 
if(wpsc_product_has_stock()) : ?>
<div id="stock_display_<?php echo wpsc_the_product_id(); ?>" class="in_stock"><?php _e('Producto en stock'TEXTDOMAIN); ?></div>
<?php else: ?>
<div id="stock_display_<?php echo wpsc_the_product_id(); ?>" class="out_of_stock"><?php _e('Producto no disponible'TEXTDOMAIN); ?></div>
<?php endif; ?>
<?php 
endif; ?>    


<?php if(wpsc_product_rater()): ?>                  
<div class="rating">   
<?php 
$old_star 
site_url() . '/wp-content/plugins/wp-e-commerce/wpsc-core/images/';
$new_star get_template_directory_uri() . '/wpsc-images/';

$rater str_replace$old_star 'grey-star.gif'$new_star 'grey-star.gif'wpsc_product_rater() );
$rater str_replace$old_star 'gold-star.gif'$new_star 'gold-star.gif'$rater );

echo 
$raterclear(); 
?>
</div>
<?php endif; ?>    


<div class="price-text"> 

<?php if(wpsc_product_is_donation()) : ?>
<label for="donation_price_<?php echo wpsc_the_product_id(); ?>"><?php _e('Donacion'TEXTDOMAIN); ?>: </label>
<input type="text" id="donation_price_<?php echo wpsc_the_product_id(); ?>" name="donation_price" value="<?php echo wpsc_calculate_price(wpsc_the_product_id()); ?>" size="6" />
<?php else : ?>                           

<h2 class="prodtitles no-cufon"><?php _e'Precio'TEXTDOMAIN ?></h2>   

<div class="price">                  

<?php if( wpsc_product_on_special() ) : ?>
<span class="oldprice" id="old_product_price_<?php echo wpsc_the_product_id(); ?>"><?php echo wpsc_product_normal_price(); ?></span>
<?php endif; ?>    
<span class="price-value" id='product_price_<?php echo wpsc_the_product_id(); ?>'><?php echo wpsc_the_product_price(); ?></span>    

<?php if(wpsc_product_on_special()) : ?>
<p class="pricedisplay product_<?php echo wpsc_the_product_id(); ?> pricesave"><?php _e('Descuento de 'TEXTDOMAIN); ?> <span class="yousave" id="yousave_<?php echo wpsc_the_product_id(); ?>"> <?php echo wpsc_currency_display(wpsc_you_save('type=amount'), array('html' => false)); ?>  un <?php echo wpsc_you_save(); ?> % del Precio total</span></p>
<?php endif; ?>

<?php if( wpsc_product_has_multicurrency() ) : ?>
<span class="textsmall">                 
<?php echo wpsc_display_product_multicurrency(); ?>
</span>                                       
<?php endif; ?>   

<?php if( wpsc_show_pnp() ) : ?><br/>                                           
<span class="pricedisplay wpscsmall">
<?php echo __('Transporte'TEXTDOMAIN); ?>:
<?php echo wpsc_product_postage_and_packaging(); ?>
</span>
<?php endif; ?>    

</div>

<?php endif; ?>

<?php clear() ?>
</div><!--close wpsc_product_price-->

<!--sharethis-->
<?php if ( get_option'wpsc_share_this' ) == ): ?>
<div class="st_sharethis" displayText="ShareThis"></div>
<?php endif; ?>
<!--end sharethis-->

a ver si hay algun alma caritativa que me entienda lo que quiero

Muchas gracias y Saludos a todos
  #10 (permalink)  
Antiguo 05/08/2011, 02:20
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Recortar un texto

Cita:
Iniciado por lucasabogado Ver Mensaje
Gracias amigos por vuestras aportaciones

Creo que el problema aqui es que seguramente no lo estoy exponiendo todo claro

para que me entendais

Dentro de mi programa no hay absolutamente nada de esto de lo que sigue a continuacion:

<?php
Código PHP:
function cut_string($string$charlimit

if(
substr($string,$charlimit-1,1) != ' '

$string substr($string,'0',$charlimit); 
$array explode(' ',$string); 
array_pop($array); 
$new_string implode(' ',$array); 

return 
$new_string.' ...'

else 
{  
return 
substr($string,'0',$charlimit-1).' ...'



//adaptarlo aqui pero no me sale 
$cadena "texto a cortar"

//para que aparezca aqui 
echo cut_string($cadena5); 
?> 
Como que "dentro de mi programa no hay absolutamente nada de esto". Eso que significa? Entonces dónde mierda está ese código? De dónde lo has sacado?

Si lo que quieres es cortar el título en esta línea:
Código PHP:
Ver original
  1. <?php echo wpsc_the_product_title(); ?>

Simplemente:
Código PHP:
Ver original
  1. <?php $tam = <número_de_caracteres_que_quieres_dejar>;
  2. echo substr(wpsc_the_product_title(), 0, $tam); ?>

Realmente no sé qué quieres hacer con el código que pones ahí, si dices que no lo tienes en tu programa.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #11 (permalink)  
Antiguo 05/08/2011, 08:34
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Recortar un texto

buenas!!

ya lei y lei todo el post y creo entender lo que quieres....
tienes una "LINEA" que quieres cortar para reducir el tamaño NO de su contenido..
en otras palabras te refieres a cortar la sintaxis del codigo no del contenido de las variables
¿no es asi??

porque si no es eso.. realmente no se entiende nada....
saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #12 (permalink)  
Antiguo 05/08/2011, 12:40
lucasabogado
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recortar un texto

Por fin vgonga1986 !!!!
Pero vigila esa lengua que te va a castigar el demonio y te va a comer la polla

Funciona pero he cambiado un poco lo ultimo que me has dicho

asi:

Código PHP:
<?php $tam 20?>
<?php 
echo substr(wpsc_the_product_title(), 0$tam); ?> ..... mas info

GRACIAS GRACIAS Y MILES DE GRACIAS

Etiquetas: recortar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:48.