|
|
|
| Дабы нельзя было убить дизайн строкой в 100000 символов без пробелов (да ващет и 300 хватит) надо порвать строку.
Собственно я делаю так:
function WWT($Str) // WorkWithText
{
/*
$Str='PHP_поддерживает_концепцию_переменных_функций._Это_означает,_что_если_к_имени_переменной_присоединены_круглые_скобки,
PHP_ищет_функцию_с_тем_же_именем,_что_и_результат_вычисления_переменной,_и_пытается_ее_выполнить._Эту_возможность_можно_использовать_для_реализации_обратных_вызовов,_таблиц_функций_и_множества_других_вещей.';
*/
$StrLn=strlen($Str);
if($StrLn>($this->MaxWordLength)*2)
{
$StrEnt = explode(chr(13),$Str);
for($i=0;$i<count($StrEnt);$i++)
{
$StrErr=true;
while($StrErr==true)
{
$StrErr=false;
$StrSps=explode(" ",$StrEnt[$i]);
for($j=0;$j<count($StrSps);$j++)
{
if(strlen($StrSps[$j])>($this->MaxWordLength)*2)
{
$t1=substr($StrSps[$j],0,$this->MaxWordLength);
$t2=substr($StrSps[$j],$this->MaxWordLength);
$StrSps[$j]=$t1." ".$t2;
$StrErr=true;
}
}
$StrEnt[$i]=implode(" ",$StrSps);
}
//print_r ($StrSps);
}
$Str=implode(chr(13),$StrEnt);
//print_r ($StrEnt);
}
return $Str;
}
|
Но чет меня терзают смутные сомненья, что сее сильно грузит серв, да и выполняется мягко говоря не очень быстро.
Как можно сделать проще?
Ну и сразу добавлю вопросик (дурная привычка спрашивать все и сразу)
допустим есть нсколько... ну назовем их модули.
каждый представляет из себя 2 файла: описание класса, его инициализация (можно сделать в одном, не в этом вопрос)
допустим их 25.
сильно ли загрузит серв и выполнение скрипта, если я создам класс в котором инициализирую их все и потом include it on mainpage?
тобишь получится я вызываю объекты не по мере их надобности а все сразу и потом уже свободно с ними работаю. | |
|
|
|
|
|
|
|
для: Whi-teOoS
(08.02.2007 в 15:21)
| | А может так?
$str='PHP_поддерживает_концепцию_переменных_функций._Это_означает,_что_если_к_имени_переменной_присоединены_круглые_скобки,
PHP_ищет_функцию_с_тем_же_именем,_что_и_результат_вычисления_переменной,_и_пытается_ее_выполнить._Эту_возможность_можно_использовать_для_реализации_обратных_вызовов,_таблиц_функций_и_множества_других_вещей.';
$arr = WWT($str, 40);
function WWT($str, $len) // WorkWithText
{
preg_match_all("/[a-z0-9_а-яё]{".$len."}/i", $str, $arr);
return $arr[0];
}
|
в конечном итоге имеешь массив строк определенной длины... выводи поэлементно | |
|
|
|
|
|
|
|
для: ZuArt
(08.02.2007 в 16:03)
| | $text = chunk_split ($text, 60, '<br>'); | |
|
|
|
|
|
|
|
для: bronenos
(08.02.2007 в 16:16)
| | выше приведенный мной пример не учитывает некоторых нюансов... в общем есть бааальшие недочеты - можно ток как за отправную точку взять.
$text = chunk_split ($text, 60, '<br>'); - тогда если есть пробелы в строке - они будут проигнорированы... как-то нехорошо =(((
тогда уж сначала рубить по строкам а потом собирать
function WWT($str, $len) // WorkWithText
{
$ret = '';
preg_match_all("/\s*(\S+)\s*/", $str, $tmp);
foreach($tmp[0] as $key => $val)
$tmp[0][$key] = chunk_split ($val, $len, '<br>');
$ret = implode('<br>', $tmp[0]);
return $ret;
}
|
| |
|
|
|
|
|
|
|
для: ZuArt
(08.02.2007 в 16:03)
| | ZuArt, пасиба, ща попробую.
А можешь дать линк на ман по прегам? Чет нормального найти не могу. | |
|
|
|
|
|
|
|
|
|
для: ZuArt
(09.02.2007 в 09:40)
| | Всем пасиб.
А по поводу второго вопроса:
допустим есть несколько... ну назовем их модули.
каждый представляет из себя 2 файла: описание класса, его инициализация (можно сделать в одном, не в этом вопрос)
допустим их 25.
сильно ли загрузит серв и выполнение скрипта, если я создам класс в котором инициализирую их все и потом include it on mainpage?
тобишь получится я вызываю объекты не по мере их надобности а все сразу и потом уже свободно с ними работаю.
|
Просто интересно как это скажется при большом количестве одновременных посещений...
Да и вообще хотелось бы сразу уточнить какие факторы сказываются на загруженность серва? | |
|
|
|
|
|
|
|
для: Whi-teOoS
(09.02.2007 в 15:21)
| | По сути, смотря как отдаются данные в браузер... если просто идет echo "..." или подобные функции (наполнение выходного потока) без flush() - отдать из потока данные браузеру, то особой разницы не будет ни при последовательной подгрузке модулей, ни при разовой...
есть какая-то разница между include и еще одной ф-ей (не помню точно) - функционал почти одинаоквый, но есть разница по способу включения модулей... на них можно сыграть...
еще тут играет роль то, что скрипт с разовым включением модулей будет сразу есть память сервака, а последовательный будет по мере работы откусывать =)))
а вообще, если необходимый минимум лучше грузить сразу, а остальное по мере необходимости =) - имхо - это мое субьективное мнение | |
|
|
|
|
|
|
|
для: ZuArt
(09.02.2007 в 15:48)
| | Спасиб. | |
|
|
|