|
|
|
| Вот существует проблема...
есть строка
12345678901234567890
и мне нежно вывести эту строку так, чтобы на 1 строке было только 5 символов...
Тоесть сама строка выглядит так:
12345678901234567890
а вывести ее нужно так:
12345
67890
12345
67890
чета припоминая функцию wordwrap, или substr но ниче невыходит.. =( | |
|
|
|
|
|
|
|
для: ZetRider
(10.03.2006 в 22:47)
| | Кроме такого решения, больше ничего в голову не лезет:
<?
$str = "12345678901234567890";
$len = intval(strlen($str)/5);
$kor = "0";
$txt = "";
for($i=0;$i<$len;$i++)
{
$txt .= substr($str, $kor, 5);
$txt .= "<br>";
$kor += "5";
}
print $txt;
?>
|
| |
|
|
|
|
|
|
|
для: ZetRider
(10.03.2006 в 22:47)
| |
$str = "12345678901234567890";
for($i=0; $i<=strlen($str); $i+=5) {
echo substr($str, $i, 5)."<br />\n";
}
|
| |
|
|
|
|
|
|
|
для: ck
(11.03.2006 в 00:44)
| | Спасиба, а как совместить код:
<?php
$arr = file("1.txt");
$i = 0;
foreach($arr as $line)
{
$i++;
list($name, $msg, $time, $ip, $id) = explode(":", $line);
$user['name'][] = $name;
$user['msg'][] = $msg;
$user['time'][] = $time;
$user['ip'][] = $ip;
$user['id'][] = $i;
}
for($i=count($arr)-1; $i>=0; $i--)
{
echo "
<br>
<b>".$user['name'][$i].":</b> ".bb($user['msg'][$i])."
";
}
?>
|
Вот с этим:
<?
$str = "12345678901234567890";
for($i=0; $i<=strlen($str); $i+=5) {
echo substr($str, $i, 5)."<br />\n";
}
?>
|
Как непытался, невыходило... | |
|
|
|
|
|
|
|
для: ZetRider
(11.03.2006 в 01:01)
| | Хм. Я, честно говоря, не понял - какую строку вам нужно вывести порциями по 5 символов?
И еще - чтобы вывести элементы массива в обратном порядке, необязательно перегонять его целиком дважды. Можно сделать так:
$arr = file("1.txt");
krsort($arr);
foreach ($arr as $row) {
list($name, $msg, $time, $ip, $id) = explode(":", $row);
echo "<br /><b>$name :</b>$msg";
}
|
Или я что-то не так понял? Тогда простите. | |
|
|
|
|
|
|
|
для: ck
(11.03.2006 в 01:25)
| | А разбивать нужно строку, которая идет $msg... Логи в файлах зранятся так:
ZetRider:Привет! Как дела?:11.03.06:127.0.0.1:
тоесть msg идет после ника. | |
|
|
|
|
|
|
|
для: ZetRider
(11.03.2006 в 09:21)
| | Всетаки сделал так:
<?php
$arr = file("1.txt");
krsort($arr);
foreach ($arr as $row) {
list($name, $msg, $time, $ip, $id) = explode(":", $row);
for($i=0; $i<=strlen($msg); $i+=5) {
echo "<b>$name :</b>" .substr($msg, $i, 5). "<br />\n";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: ZetRider
(11.03.2006 в 09:56)
| | Точку пропустил перед substr.
echo "<br /><b>$name :</b>" .substr($msg, $i, 5)."<br />\n";
|
| |
|
|
|
|
|
|
|
для: Drago
(11.03.2006 в 10:07)
| | ага, но всеже)) есть 1 но.
Код:
<?php
$arr = file("1.txt");
krsort($arr);
foreach ($arr as $row) {
list($name, $msg, $time, $ip) = explode(":", $row);
for($i=0; $i<=strlen($msg); $i+=5) {
echo "<b>$name :</b>" .substr($msg, $i, 5). "<br>";
}
}
?>
|
выводит имя:сообщение и если сообщение длинное то он его ризбивает по строкам с интервалом 5 символов, но когда он переносит остальное после 5-ти символов, скрипт думает что ето новое сообщение, и приписывает к нему имя, тоесть если сообщение выглядит так:
1234567890
после обработки скриптом он его разбивает так
12345
67890
Но к каждой новой строке он приписывает
$name 12345
$name 67890
, ну рас ето 1 строка то ненужно чтобы он приписывал к ней $name,..
Как мона етот глюк убрать? | |
|
|
|
|
|
|
|
для: ZetRider
(11.03.2006 в 10:34)
| | Вот так:
<?php
$arr = file("1.txt");
krsort($arr);
foreach ($arr as $row) {
list($name, $msg, $time, $ip) = explode(":", $row);
print "<b>$name :</b>";
for($i=0; $i<=strlen($msg); $i+=5) {
echo substr($msg, $i, 5). "<br>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: JIEXA
(11.03.2006 в 11:14)
| | Что-то я вчеро видимо был пьян.. Все можно сделать гараздо проще:
<?php
$arr = file("1.txt");
krsort($arr);
foreach ($arr as $row)
{
list($name, $msg, $time, $ip) = explode(":", $row);
print "<b>$name :</b>";
wordwrap($msg, 5, "<br>\n", 1);
}
?>
|
| |
|
|
|
|
|
|
|
для: JIEXA
(11.03.2006 в 11:26)
| | не.. тот который раньше был он нормальный...
А вот етот код
<?
$file=file("text.txt"); # будем считывать строки с файла text.txt
$strings="5"; # количество считываемых строк
for($i_str=0;$i_str<$strings;$i_str++)
{
$string.=$arr[$i_str];
}
echo $string;
?>
|
можна как нить внедрить в:
<?php
$arr = file("1.txt");
krsort($arr);
foreach ($arr as $row) {
list($name, $msg, $time, $ip) = explode(":", $row);
print "<b>$name :</b>";
for($i=0; $i<=strlen($msg); $i+=5) {
echo substr($msg, $i, 5). "<br>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: ZetRider
(11.03.2006 в 11:35)
| | Может есть проще код который выводит из файла только первые 5 строк? | |
|
|
|
|
|
|
|
для: ZetRider
(11.03.2006 в 14:38)
| | Если их нужно вывести в той же последовательности, что в файле, то так:
<?php
$open = fopen('1.txt', 'r');
for($a=1; $a<=5; $a++) {
$row = fgets($open);
list($name, $msg, $time, $ip) = explode(":", $row);
print "<b>$name :</b>";
for($i=0; $i<=strlen($msg); $i+=5) {
echo substr($msg, $i, 5). "<br>";
}
}
?>
|
А если в обратной, то:
<?php
$file = file('1.txt');
for($a=4; $a>=0; $a--) {
$row = $file[$a];
list($name, $msg, $time, $ip) = explode(":", $row);
print "<b>$name :</b>";
for($i=0; $i<=strlen($msg); $i+=5) {
echo substr($msg, $i, 5). "<br>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: ck
(13.03.2006 в 01:32)
| | хм.. а он выводит только строки с 1 по 5-ую ((( а после 5-ой строки есть же еще и 6 и 7 и 8....тоесть если выводить по 5 сообщений то он должен уже вывести не с 1 по 5-ую строку а с 4,5,6,7,8... | |
|
|
|