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

Форум PHP

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

 

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

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

тема: Разбить строку на подстроки
 
 автор: Electron   (23.04.2012 в 15:15)   письмо автору
 
 

Добрый день! Подскажите пожалуйста, как мне разбить строку на подстроки, к примеру символом пробела, мне нужна функция, которая возьмёт текст ДО строки, на подобии strstr, только наоборот :)

  Ответить  
 
 автор: Electron   (23.04.2012 в 15:18)   письмо автору
 
   для: Electron   (23.04.2012 в 15:15)
 

То есть:

<?php
$text = "text1 text2";
$dir = ???($text, " ");
echo $dir; // выводит text1
?>

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 15:24)   письмо автору
 
   для: Electron   (23.04.2012 в 15:18)
 

Ничего тут не надо придумывать.. всё уже сделано за вас... Читаем документацию... функция -explode http://ru.php.net/manual/ru/function.explode.php

  Ответить  
 
 автор: Electron   (23.04.2012 в 16:20)   письмо автору
 
   для: Роккер Руслан   (23.04.2012 в 15:24)
 

Проблема в том, что данная функция разбивает строку в массиве, а мне нужно чтобы осталась строка

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 16:38)   письмо автору
 
   для: Electron   (23.04.2012 в 16:20)
 

не понял, что не так то?

  Ответить  
 
 автор: Lotanaen   (23.04.2012 в 16:39)   письмо автору
 
   для: Electron   (23.04.2012 в 16:20)
 

$array = implode(' ',$test);
ну так $array[0] и будет то что Вам нужно.

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 16:44)   письмо автору
 
   для: Lotanaen   (23.04.2012 в 16:39)
 

$array = implode(' ',$test);
ну так $array[0] и будет то что Вам нужно.

implode?)))

  Ответить  
 
 автор: Lotanaen   (23.04.2012 в 16:46)   письмо автору
 
   для: Роккер Руслан   (23.04.2012 в 16:44)
 

сорри, explode() )))

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 16:40)   письмо автору
 
   для: Electron   (23.04.2012 в 16:20)
 

еще раз читаем документацию

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 16:43)   письмо автору
 
   для: Electron   (23.04.2012 в 16:20)
 

<?php
$text = "text1 text2";
$dir = explode(" ", $text);
echo $dir[0]; // выведет text1
echo $dir[1]; // выведет text2
что не так?
?>

  Ответить  
 
 автор: Electron   (23.04.2012 в 16:51)   письмо автору
 
   для: Роккер Руслан   (23.04.2012 в 16:43)
 

Тут, чтобы обратиться к строке, нужно указать именно эту строку, а у меня количество строк будет разным, и каждая будет проверяться

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 16:58)   письмо автору
 
   для: Electron   (23.04.2012 в 16:51)
 

Я не понимаю в чем проблема)))) Тут даже возникает вопрос: и что?

  Ответить  
 
 автор: Lotanaen   (23.04.2012 в 16:58)   письмо автору
 
   для: Electron   (23.04.2012 в 16:51)
 

.....

  Ответить  
 
 автор: Киналь   (23.04.2012 в 17:07)   письмо автору
 
   для: Electron   (23.04.2012 в 16:51)
 

foreach()

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 17:09)   письмо автору
 
   для: Киналь   (23.04.2012 в 17:07)
 

Вы так написали как будто это функция, которую ищет топикстартер)))

  Ответить  
 
 автор: Electron   (23.04.2012 в 17:44)   письмо автору
 
   для: Роккер Руслан   (23.04.2012 в 17:09)
 

<?php
$mail = "user@example.com";
$domain = strstr($mail, "@");
echo $domain; // выводит @example.com, а нужно чтобы вывело user
?>

  Ответить  
 
 автор: Киналь   (23.04.2012 в 17:58)   письмо автору
 
   для: Роккер Руслан   (23.04.2012 в 17:09)
 

Краткость несколько подвела))

  Ответить  
 
 автор: Electron   (23.04.2012 в 17:59)   письмо автору
 
   для: Киналь   (23.04.2012 в 17:58)
 

В плане?

  Ответить  
 
 автор: Киналь   (23.04.2012 в 18:04)   письмо автору
 
   для: Electron   (23.04.2012 в 17:59)
 

Меня подвела.

Более подробно. Вам показали, как из вашей строки сделать массив; вам, по вашим словам, нужно проверить каждый элемент получившегося массива. Вот для этого и подойдёт конструкция foreach().

  Ответить  
 
 автор: Electron   (23.04.2012 в 18:08)   письмо автору
 
   для: Киналь   (23.04.2012 в 18:04)
 

У меня может быть 4 строки: один, два, три, четыре, а может 3: один, три, четыре
Как я смогу проверить это? Ведь в массиве только так: $arr[1] == "один", я конечно могу проверить сразу несколько вариантов в одном условии, но у меня и без того условие будет большим...

Хотя может я и туплю =/

  Ответить  
 
 автор: Киналь   (23.04.2012 в 18:15)   письмо автору
 
   для: Electron   (23.04.2012 в 18:08)
 

Я вообще перестал что-либо понимать. Давайте с самого начала: какие у вас исходные данные и что вы хотите получить?

  Ответить  
 
 автор: Electron   (23.04.2012 в 18:19)   письмо автору
 
   для: Киналь   (23.04.2012 в 18:15)
 

Есть форма textarea, в нее пользователь вводит несколько строк (разное количество), к примеру:
начало
середина
конец

или:
начало
старт
середина
финал
конец

Нужно каждую стоку проверить на правильность написания, и если есть ошибки - вывести в какой строке ошибка. Количество строк будет варьироваться пока не знаю в каких пределах

Вот я и хотел функцией до перехода (\r\n) проверить каждую сроку, чтобы не разбивать в массиве

  Ответить  
 
 автор: Киналь   (23.04.2012 в 18:29)   письмо автору
 
   для: Electron   (23.04.2012 в 18:19)
 

>Вот я и хотел функцией до перехода (\r\n) проверить каждую сроку, чтобы не разбивать в массиве

А за что вы так не любите массивы? Описанная задача решается, например, так:

<?php
$text 
$_POST['from_textarea']; // проверки, конечно, ну да для простоты
$words explode($text'\r\n');
foreach (
$words as $key=>$word)
{
 if (
not check($word)) echo "Ошибка в слове номер $key<br>";
}

?>

  Ответить  
 
 автор: Electron   (24.04.2012 в 19:08)   письмо автору
 
   для: Киналь   (23.04.2012 в 18:29)
 

not check? Это что за конструкция такая? Впервые вижу, да и не работает она:
Parse error: syntax error, unexpected T_STRING
Я не очень понимаю foreach, потому у меня всё тупо на ифах...

  Ответить  
 
 автор: Киналь   (24.04.2012 в 20:42)   письмо автору
 
   для: Electron   (24.04.2012 в 19:08)
 

check() — это ваша функция, которой вы проверяете слова:

> Нужно каждую стоку проверить на правильность написания

Foreach() — это базовая конструкция языка, разберитесь с ней.

  Ответить  
 
 автор: Electron   (25.04.2012 в 13:24)   письмо автору
 
   для: Киналь   (24.04.2012 в 20:42)
 

Ну а в чём прикол то?

if ($word == "первое") {
echo "Ошибка в слове номер $key<br>";
}
if ($word == "второе") {
echo "Ошибка в слове номер $key<br>";
}

??? Получается строка...

  Ответить  
 
 автор: Киналь   (25.04.2012 в 14:19)   письмо автору
 
   для: Electron   (25.04.2012 в 13:24)
 

Приколане вижу. Да и кода этого вашего совсем не понял. Что вы им хотите сделать?

  Ответить  
 
 автор: Роккер Руслан   (23.04.2012 в 18:43)   письмо автору
 
   для: Electron   (23.04.2012 в 18:08)
 

explode возвращает массив и вы по этому массиву проходитесь foreach - ем

[поправлено модератором]

  Ответить  
Rambler's Top100
вверх

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