Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод первых n слов
 
 автор: AVS   (23.05.2008 в 15:12)   письмо автору
 
 

Написал небольшой код:


<?php
$str
='Если вы хотите узнать, как работает программа, а деморолика и описания нет. Просто посадите за клавиатуру кошку';

$words=str_word_count($str,2);

$pos_words=array_keys($words);

print_r($words);

echo 
'<br><br>';

print_r($pos_words);

echo 
'<br><br>';

echo 
substr($str,0,$pos_words[4]);
?>


По идеи результатом должна быть строка: "Если вы хотите узнать", но на самом деле результат таков:


Array ( [0] => Ес [3] => и [5] => вы [8] => х 
[10] => тите [15] => узнат [24] => а [27] => раб 
[31] => тает [36] => пр [39] => грамма [47] => а 
[49] => дем [53] => р [56] => и [58] => а [60] => и 
[63] => писани [71] => нет [77] => р [79] => ст 
[83] => п [85] => садите [92] => за [97] => авиатуру 
[108] => ш [110] => у ) 

Array ( [0] => 0 [1] => 3 [2] => 5 [3] => 8 
[4] => 10 [5] => 15 [6] => 24 [7] => 27 [8] => 31 
[9] => 36 [10] => 39 [11] => 47 [12] => 49 
[13] => 53 [14] => 56 [15] => 58 [16] => 60 
[17] => 63 [18] => 71 [19] => 77 [20] => 79 
[21] => 83 [22] => 85 [23] => 92 [24] => 97 
[25] => 108 [26] => 110 ) 

Если вы хо


Версия PHP: 5.2.4.
Локаль установлена как: setlocale(LC_ALL,'ru_RU.cp1251');

В чем причина неправильной работы скрипта?

   
 
 автор: amigo62   (23.05.2008 в 15:25)   письмо автору
 
   для: AVS   (23.05.2008 в 15:12)
 

Хм.. Я бы так сделал

<?php 
$str
='Если вы хотите узнать, как работает программа, а деморолика и описания нет. Просто посадите за клавиатуру кошку';
$words=explode(" ",$str);
for(
$i=0;$i<4;$i++)
{
echo 
$words[$i]." ";
}
?>
:

   
 
 автор: Axxil   (23.05.2008 в 15:59)   письмо автору
 
   для: amigo62   (23.05.2008 в 15:25)
 

Вот такой ещё вариант есть:

<?
  
echo implode(" ",array_slice(preg_split('|[\s]+|is',$str),0,$n));  
?>

   
 
 автор: sim5   (23.05.2008 в 15:35)   письмо автору
 
   для: AVS   (23.05.2008 в 15:12)
 

Причина неправильной работы вашего скрипта, заключается в правильной работе print_r().

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования