@Отрезание лишнего

IBSN

Новичок
а если у тебя пробел как разделитель то можно и обойтись explode() =)
 

Frol

Новичок
Winnie Pooh
IBSN
угу

[m]substr[/m] + [m]strpos[/m]
1. удобней
2. быстрей

уяснили или объяснить?
 

.des.

Поставил пиво кому надо ;-)
Если читать функцией file то [m]substr[/m] + [m]strpos[/m] вне конкуренции.
на 30-50% опережает [m]explode[/m] (да и то если [m]explode[/m] используется с параметром limit)


Но если читать
PHP:
$fp = fopen($fname,'rb');
$a = fread($fp,filesize($fname));
fclose($fp);
То процентов на 10-20 оказывается быстрее preg_split
PHP:
$a = preg_split("~\s+.*[\r\n]+~",$a);
, но это для особых извращенцев и в реальном коде, использовать не рекомендуется.

Так что слушайте Frola :D
 

fixxxer

К.О.
Партнер клуба
извращенцы.
$string="foo bar blablabla";
$s = strtok($string, " ");
всё.
 

Dreamer76

Through thorns
Originally posted by Winer
Hint!: надо сделать substr от строки, начиная с символа в позиции 0, длиной в количество символов до первого вхождения пробела
Количество символов разное..

-~{}~ 23.04.04 09:21:

Originally posted by Frol
дальше некуда
могу наготово написать, но ты ведь от этого не научишся

если не доходит -- то мой совет: забей на программирование

без обид
Не думаю, что это хорошая идея.
Если я php+mysql разрюхал за неделю (по-необходимости) и сделал сайт полностью на php с базами данных, то это говорит о том, что я чего-то могу. Просто мне непонятны некоторые мелочи. Вот ты объясни как сделать правильно и я запомню. У всех разная методика самообразования. Некоторые сидят и думают, как сделать. А у других хорошая память. Т.е. посмотрел как правильно и запомнил. В другой раз применю правильно. Так что ты не совсем прав.

Если тебе не сложно, напиши пару строк кода. Правильно. А если сложно, то просто забей на этот топик. Советы бросать программирование - не катят. Так можно зайти в любую тему на этом форуме в разделе "новички" и сказать всем - бросайте, ребят, это программирование и идите грузить вагоны. Так что вот так, Frol. Помогать надо, а не топить.
 

fixxxer

К.О.
Партнер клуба
У всех разная методика самообразования. Некоторые сидят и думают, как сделать. А у других хорошая память. Т.е. посмотрел как правильно и запомнил. В другой раз применю правильно. Так что ты не совсем прав.
такой подход годится только для гуманитарных наук. программер должен думать. так же как математик или физик.
 

Dreamer76

Through thorns
Originally posted by fixxxer
такой подход годится только для гуманитарных наук. программер должен думать. так же как математик или физик.
Я думаю. Просто мне не все так просто дается в программировании. Зато есть интерес.
 

Lav

Guest
Автор оригинала: fixxxer
такой подход годится только для гуманитарных наук. программер должен думать. так же как математик или физик.
Чрезвычайно спорное утверждение. Программист должен уметь думать, как математик или физик. С этим не спорю. А вот что он должен так думать постоянно - нафиг.

Что же до обучения - я сам изучал PHP именно так, как Dreamer. Впоследствии, при наборе определённого багажа "работающих примеров", перешёл к изучению мануала. И ничуть об этом не жалею.
 

Winer

Мимо проходил
Dreamer76
Hint!: strpos( string haystack, string needle) выдаст нам позицию в строке haystack строки needle(например пробела)

-~{}~ 23.04.04 13:05:

первого слева пробела!!!
 

Dreamer76

Through thorns
Вот что у меня получилось, благодаря некоторой помощи из присутствующих.

В принципе - работает.
Но есть одно "но".

Вместо пробела между уч. записями:

guest1 hello hello2 hello3

стоит ТАБУЛЯЦИЯ.

а последняя запись hello3, в примере:

guest1 hello hello2 hello3
guest2 hello hello2 hello3
guest3 hello hello2 hello3

имеет одну табуляцию после hello3. Т.е. переходит на следующую строку.

В итоге получаю:

guest1
guest2
guest3
guest3

вместо:

guest1
guest2
guest3

В чем грабли? :(

PHP:
<? 

@ $fp = fopen("http://www.someaddress.ru/chat/data/who.dat", "r"); 

if (!$fp) 

{ 
  echo "<p>Bad</p>"; 
  exit; 
} 


while (!feof($fp)) 

{
  $order = fgets($fp); 
  if (!feof($fp)) 
  $data = explode("	", $order);
  echo $data[0]."<br>";
} 

fclose($fp); 


?>
:( :( :(
 

Frol

Новичок
Dreamer76
так... я не шучу.
если не можешь понять ЭТО, а это НЕ "мелочь" -- то интересно увидеть твой сайт на PHP + MySQL

strpos возвращает расположение символа в строке (в твоем случае пробела)
substr отрезает от строки с одного указанного символа (в твоем случае начало строки, то есть 0) до другого указанного символа (в твоем случае расположение пробела)

если сейчас не поймешь -- то клиника...
 

Dreamer76

Through thorns
Originally posted by Frol
Dreamer76
так... я не шучу.
если не можешь понять ЭТО, а это НЕ "мелочь" -- то интересно увидеть твой сайт на PHP + MySQL

strpos возвращает расположение символа в строке (в твоем случае пробела)
substr отрезает от строки с одного указанного символа (в твоем случае начало строки, то есть 0) до другого указанного символа (в твоем случае расположение пробела)

если сейчас не поймешь -- то клиника...
Клиника или не клиника, но.. увы. Не всем быть гуру в php. Ладно, буду искать help в другом месте. Спасибо.
 

Frol

Новичок
в морг.

тебе уже все объяснили, осталось только все соеденить.
в другом месте тебе напишут готовый код, и сделают "ошибку".
через неделю прибежишь опять и будешь снова спрашивать.
 

SiMM

Новичок
Автор оригинала: Frol
через неделю прибежишь опять и будешь снова спрашивать.
... так ничему и не научившись (в частности, думать).
PS: это чтоб до него дошло
 
Сверху