Reply to Re: [PHP] [DONE] Substr by words

Your name:

Reply:


Posted by Minuk Choi on 10/29/05 18:51

Good job!

However, let me give a few suggestions to optimize the code

function trim_text($text, $count)
{
$text = str_replace(" ", " ", $text);
/*
* This is redundant; you are replacing all " " in $text with " "
* maybe you meant
* $text = trim($text); ?
*/

$string = explode(" ", $text);

/*
* For better programming practice, you should initialize $trimed
* I believe if you turn on error_reporting for all in php.ini
* PHP will display all warnings and errors.
*/


for ( $wordCounter = 0; $wordCounter <= $count;wordCounter++ )
/*
* Typo - you forgot the $ for wordCounter++
*
* for ( $wordCounter = 0; $wordCounter <= $count; $wordCounter++)
*/
{
$trimed .= $string[$wordCounter];
if ( $wordCounter < $count )
{
$trimed .= " ";
}
else
{
$trimed .= "...";
}
}

$trimed = trim($trimed);
return $trimed;
}



This is purely my suggestion... and I'm not saying it is better... but
if I were you, I'd do it this way :

function trim_text($text, $count)
{
$text = trim($text);

$string = explode(" ", $text);
$trimed='';
for ( $wordCounter = 0; $wordCounter <= $count; $wordCounter++ )
{
$trimed .= $string[$wordCounter].' ';
}

$trimed = trim($trimed);

if (count($string)>$count)
$trimed.='...';

return $trimed;
}

The only difference(not that you'd notice in a lightweight routine like
this) is that, I don't have that if-else block inside the loop.


Danny wrote:

>Finally i found it (Google is god, you only have to ask the right question)
> function trim_text($text, $count){
>$text = str_replace(" ", " ", $text);
>$string = explode(" ", $text);
>for ( $wordCounter = 0; $wordCounter <= $count;wordCounter++ ){
>$trimed .= $string[$wordCounter];
>if ( $wordCounter < $count ){ $trimed .= " "; }
>else { $trimed .= "..."; }
>}
>$trimed = trim($trimed);
>return $trimed;
>}
>
>Usage
>------------------------------------------------
>$string = "one two three four";
>echo trim_text($string, 3);
>
>
>---------- Forwarded message ----------
>From: Danny <metalito@gmail.com>
>Date: Oct 29, 2005 1:36 PM
>Subject: Substr by words
>To: php-general@lists.php.net
>
> Hi,
> I need to extract 50 words more or less from a description field. How can i
>do that?. Substr, cuts the words. Is there any other way to that, without
>using and array? I mean and implemented function in PHP 4.x
> I´ve been googling around, but wordwrap, and substr is driving me mad...
> Thanks in advance
>Best Regards
>
>--
>dpc
>
>
>--
>dpc
>
>
>

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация