[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция explode
stas_12
Всем доброе время суток! :)
Вот мой исходник:
<form action="" method="post">
Input:
<
br>
<
textarea name="text"></textarea>
<
br>
<
input type="submit" />
</
form>
<?php
$s = isset($_POST['text']) ? strtolower($_POST['text']) : NULL;
?>

Output:
<
br>
<
textarea cols="20" rows="5" name="text">
<?php echo $s; ?>
</textarea>
Проблема в том что я хочу чтоб после конвертации текста с больших букв в маленькие слова сортировались по алфавиту если я всё правильно понимаю для этого нужна функция "explode" и "sort"но как это применять я не знаю помогите плис :(



Спустя 10 минут, 27 секунд (11.03.2011 - 14:56) stas_12 написал(а):
Например вот текст который мы имеем с самого начала "My nAmE iS StAS" получаем "my name is stas" после этого должна происходить сортировка слов, и должны получить в конце вот такое:
is
my
name
stas

Спустя 7 минут, 56 секунд (11.03.2011 - 15:04) Snus написал(а):
stas_12
А в чем проблема-то?
if(!empty($_POST['text'])){
$exp = explode(' ', strtolower($_POST['text']));
sort($exp);
echo implode(' ', $exp);
}

Спустя 1 час, 43 минуты, 36 секунд (11.03.2011 - 16:47) stas_12 написал(а):
Snus
А куда именно это вставлять? unsure.gif (Я новичок)

Спустя 10 минут, 38 секунд (11.03.2011 - 16:58) m4a1fox написал(а):
Привет Стас. Как там вчера, разобрался....?

Спустя 47 секунд (11.03.2011 - 16:59) stas_12 написал(а):
m4a1fox
Да спасибо большое! smile.gif
Сегодня продолжаю smile.gif

Спустя 38 секунд (11.03.2011 - 16:59) m4a1fox написал(а):
Snus
тут разжевать надо. Человек начинает только....

Спустя 2 минуты, 23 секунды (11.03.2011 - 17:02) stas_12 написал(а):
Вот я вставил этот кусочек полезный! B)
<form action="" method="post">
Input:
<
br>
<
textarea name="text"></textarea>
<
br>
<
input type="submit" />
</
form>
<?php
if(!empty($_POST['text'])){
$exp = explode(' ', strtolower($_POST['text']));
sort($exp);
}
?>

Output:
<
br>
<
textarea cols="20" rows="5" name="text">
<?php echo implode(' ', $exp); ?>
</textarea>


А как сделать переход на новую строку? Наверно вставить /n надо???

Спустя 53 секунды (11.03.2011 - 17:03) m4a1fox написал(а):
stas_12
Лови
<?php
if(isset($_POST['text'])){
$exp = explode(' ', strtolower($_POST['text']));
sort($exp);
$r = implode(' ', $exp);
}
?>
<form action="" method="post">
Input:
<
br>
<
textarea name="text"></textarea>
<
br>
<
input type="submit" />
</
form>
Output:
<
br>
<
textarea cols="20" rows="5" name="text">
<?php echo $r; ?>
</textarea>

Спустя 1 минута, 13 секунд (11.03.2011 - 17:04) m4a1fox написал(а):
stas_12
Да, и еще. PHP рекомендуется вставлять перед тегами <html>.... На будущее учти...

Спустя 1 минута, 3 секунды (11.03.2011 - 17:05) stas_12 написал(а):
m4a1fox
Спасибо. А как сделать переход на новую строку? Наверно вставить /n надо??? :huh:

А сам нашел уже спасибо!
<?php echo implode("\r\n", $exp); ?>

Спустя 4 минуты (11.03.2011 - 17:09) killer8080 написал(а):
Вместо implode(' ', $exp);
implode("\r\n", $exp);

Спустя 4 минуты, 53 секунды (11.03.2011 - 17:14) m4a1fox написал(а):
stas_12
Ты хоть скажи, для чего тебе.... Просто интересно...

Спустя 2 минуты, 26 секунд (11.03.2011 - 17:16) m4a1fox написал(а):
Дядь Коль, можно вопрос?

Спустя 1 минута, 3 секунды (11.03.2011 - 17:17) stas_12 написал(а):
m4a1fox
Это мне для учёбы нужно (Хочу на программиста учится идти, я ещё в VB.NET немного понимаю)

Так одной проблемы меньше. Теперь!!! Вот что нужно сделать теперь:
Например это текст:
gateProtect AG ist eine Firma in Hamburg. Die Firmenadresse ist: „Valentinskamp 24, 20354 Hamburg“.

Вот выход:
ag - ag
di - die
ei - eine
fi - firmenAdresse, firma
ga - gateprotect
ha - hamburg (2)
in - in
is - ist (2)
va - valentinskamp

Спустя 19 секунд (11.03.2011 - 17:18) m4a1fox написал(а):
Эх.... ушел дядя Коля... sad.gif

Спустя 1 минута, 18 секунд (11.03.2011 - 17:19) m4a1fox написал(а):
stas_12
Ясненько... Ну удачи.

Спустя 2 минуты, 10 секунд (11.03.2011 - 17:21) stas_12 написал(а):
Как сделать чтоб сортировка только по первой и второй букве была?
И только первые две буквы выдавались, а затем и само слово геде эти буквы были найдены unsure.gif

Спустя 3 минуты, 51 секунда (11.03.2011 - 17:25) m4a1fox написал(а):
stas_12
Я думаю, тебе надо копать в сторону mb_substr функции... Хотя, может и ошибаюсь...

Спустя 2 минуты, 8 секунд (11.03.2011 - 17:27) stas_12 написал(а):
Блин видемо это мне на долго ещё хватит ковыряться!
А мне ответ с исходникам нужно уже сегодня в фирму отсылать sad.gif

Спустя 14 минут, 34 секунды (11.03.2011 - 17:42) stas_12 написал(а):
Нашел такую функцию, с помощью её я могу вычислить первые две буквы (В даном случаи "AS"):
<?php
mb_internal_encoding ( "UTF-8" );
$string = "0ASDFGHJKL" ;
$mystring = mb_substr ( $string , 1 , 2 );
echo $mystring ;
?>

Кто не будь знает как я могу использовать это дальше? :(

Спустя 26 минут, 41 секунда (11.03.2011 - 18:08) stas_12 написал(а):
Я добился того чтобы только две первые буквы выдавались, но почему то только одного слова, а не всех :unsure:
<form action="" method="post">
Input:
<
br>
<
textarea name="text"></textarea>
<
br>
<
input type="submit" />
</
form>
<?php
if(!empty($_POST['text'])){
$exp = explode(' ', strtolower($_POST['text']));
sort($exp);
$string = implode("\r\n", $exp);
$mystring = mb_substr ( $string , 0, 2 );
}
?>

Output:
<
br>
<
textarea cols="20" rows="5" name="text">
<?php
echo $mystring;
?>
</textarea>

Спустя 1 час, 12 минут, 23 секунды (11.03.2011 - 19:21) alex12060 написал(а):
$string = implode("\r\n", $exp); - тут ты все собираешь в одну строку, правда, разделенную 1 символом.
Советую, оставить массив, а потом уже разать в цикле.

Спустя 5 минут, 38 секунд (11.03.2011 - 19:26) stas_12 написал(а):
alex12060
Спасибо за ответ! А мозжно попроще/наглядно обьяснить (Очень плохо в ПХП разбераюсь)
Спасибо

Спустя 8 минут, 56 секунд (11.03.2011 - 19:35) alex12060 написал(а):
stas_12

Как сказал очень мудрый человек inpost: честно? Проще, но тогда не прибавится знаний у тебя =)

Так что, думай сам, я дал тебе наводку.
Оставь массив, пускай через цикл и делай все теже действия с мб

Спустя 7 минут, 4 секунды (11.03.2011 - 19:42) stas_12 написал(а):
alex12060
Ябы с удовольствием подумал (сомому даже интересно) но времени до здачи теста осталась около часа. Поэтому для раздумки много времени нет (Мне ещё протокол писать)

Спустя 1 минута (11.03.2011 - 19:43) alex12060 написал(а):
Покажи исходную строку и результат, который надо получить.

Спустя 8 минут, 51 секунда (11.03.2011 - 19:52) stas_12 написал(а):
Вот пожалуйста:
<form action="" method="post">
Input:
<
br>
<
textarea name="text"></textarea>
<
br>
<
input type="submit" value="Konvertieren"/>
</
form>

<?php
if(!empty($_POST['text']))
{
$exp = explode(' ', strtolower($_POST['text']));
sort($exp);
}
?>

Output:
<
br>
<
textarea cols="20" rows="5" name="text">
<?php
$string = implode("\r\n", $exp);
echo $string ;
?>
</textarea>

Резултата я почти добился все буквы которые написаны большими (например "A") должни конвертирыватся в маленькие (тоесть в "a").
Теперь сома проблема нужно чтоб слова обрезались и выдавались только первые две буквы одного слова.

Текст например:
"Meine Name ist Stas"
Вот таким должен быть результат:
me
na
is
st

Ещё лудше если результат будет таким:
me - meine
na - name
is - ist
st - stas

Спустя 10 минут, 28 секунд (11.03.2011 - 20:03) alex12060 написал(а):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>
Гостевая книга 1.0</title>
</head>
<body>
<form
method="post">
<input
type="text" name="text" /> <input type="submit" name="post" />
</form>



<?php
//header("content-type: text/html; charset=utf-8");
if (isset($_POST['post'])) {
$text = !empty($_POST['text']) ? htmlspecialchars($_POST['text']) : false;

if (!$text) { die('Please input data on a form!'); }

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

for($i=0; $i<sizeof($text); ++$i) {
$new .= substr($text[$i], 0, 2)."\n\r";
}

echo nl2br($new);
}
die();
?>


Спустя 2 минуты, 16 секунд (11.03.2011 - 20:05) alex12060 написал(а):
С тебя задание: Прокомментировать каждую строчку моего кода, с как можно широким разъяснением. Ок?

Спустя 4 минуты (11.03.2011 - 20:09) stas_12 написал(а):
alex12060
СУПЕР СПАСИБО!!!

Я постораюсь!!! Пне серовно коментарии писать, правда на немецком biggrin.gif

Спустя 9 минут, 13 секунд (11.03.2011 - 20:18) alex12060 написал(а):
$text = !empty($_POST['text']) ? htmlspecialchars($_POST['text']) : false;


Единственное подскажу:

Это называется Тернарный оператор

Спустя 17 минут, 17 секунд (11.03.2011 - 20:35) stas_12 написал(а):
Слушай тут буквы большие остаются! ohmy.gif sad.gif

Спустя 10 минут, 11 секунд (11.03.2011 - 20:45) DedMorozzz написал(а):
Цитата
Это называется Тернальный оператор
какой какой?

Спустя 7 минут, 26 секунд (11.03.2011 - 20:53) alex12060 написал(а):
ой, пардон ;D

Спустя 57 секунд (11.03.2011 - 20:54) alex12060 написал(а):
stas_12

Напиши strlower()
сможешь?)

Я забыл просто про него)
И сортировку убрал кстати.

Спустя 22 часа, 16 минут, 55 секунд (12.03.2011 - 19:11) stas_12 написал(а):
alex12060
Вот тебе коментарии ;)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Test</title>
<
form method="post">
Input:
<
br>
<
textarea name="text"></textarea>
<
br>
<
input name="post" type="submit" value="Convert"/>
<
br>
<?php
if (isset($_POST['post']))
{
$text = !empty($_POST['text']) ? htmlspecialchars($_POST['text']) : false; //Текст посылается в "$text" из "textarea"

if (!$text) { die('Please input text on a form!'); } //Если не было заданно текста появляется информационная строка "Please input text on a form!"

$text = explode(" ", strtolower($text)); //Разбивание на слова + конвертация букв в маленькие буквы
$text=preg_replace("/[^a-zA-Z0-9]/", "", $text); //Всё кроме букв и цифр из слов удаляется
sort($text); //Сортируется по алфавиту
echo "Output:", "<br />"; //Появляется строка "Output:" + переход на новую строку
for($i=0; $i<sizeof($text); ++$i)
{
$new .= substr($text[$i], 0, 2)."\n\r"; //Переход на новую строку
}
echo nl2br($new); //Результат
}
die();
?>
</form>
</
html>

Спустя 26 минут, 46 секунд (12.03.2011 - 19:38) neadekvat написал(а):
У вас лишние die. Его вообще надо аккуратно использовать - и лучше только при отработке скрипта. В противном случаи вы ломаете html-разметку.

К тому же, несколько усложняете код, лишние циклы вводите.
Вот, например, как бы сделал я (ни в коем случаи не претендую на идеал, лишь только мой вариант), это собстно только часть кода, которая на php, не вижу смысла копировать форму и остальную разметку:
if (isset($_POST['post']) && ! empty($_POST['post']))
{
$text = preg_replace('/[^\w\s]/', '', $_POST['post']);

$text = explode(' ', strtolower($text));

sort($text);

array_map(create_function('$value', 'return substr($value, 0, 2);'), $text);

echo 'Output: <br />';
echo implode('<br />', $text); //Результат
}

Спустя 1 час, 27 минут, 37 секунд (12.03.2011 - 21:05) alex12060 написал(а):
Проверь результат:
Должно:
Вход: ist MeiNe name sTas
Выход: is
me
na
st



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<
head>
<
title>Гостевая книга 1.0</title>
</
head>
<
body>
<
form method="post">
<
input type="text" name="text" /> <input type="submit" name="post" />
</
form>
<?php
//header("content-type: text/html; charset=utf-8");
if (isset($_POST['post']) && ! empty($_POST['post']))
{
$text = preg_replace('/[^\w\s]/', '', $_POST['text']);

$text = explode(' ', strtolower($text));

sort($text);

array_map(create_function('$value', 'return substr($value, 0, 2);'), $text);

echo 'Output: <br />';
echo implode('<br />', $text); //Результат
}
</body>
</
html>

Спустя 6 минут, 39 секунд (12.03.2011 - 21:12) neadekvat написал(а):
alex12060, посмотрите на код, который я переделывал (последний пост перед моим), там тоже есть функция substr($value, 0, 2); Если она не нужна - то и вообще строку с array_map можно убрать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.