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

Форум PHP

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

 

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

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

тема: Условие IF. Текстовая строка.
 
 автор: x2x2   (16.01.2009 в 20:33)   письмо автору
 
 

Как правильно поставить условие? Если текст содержит слово Dva то выполняется условие.
Варианты if($text=='Dva') и if($text=='%Dva%') не работают.
<?php
$text
="Raz Dva Tri";

if(
$text=='Dva')
{
print 
"Yes";
} else {
print 
"No";
}
?>

  Ответить  
 
 автор: ddhvvn   (16.01.2009 в 20:41)   письмо автору
 
   для: x2x2   (16.01.2009 в 20:33)
 

<?php 
$text
="Raz Dva Tri"

if(
strpos($text'Dva') !== false)

print 
"Yes"
} else { 
print 
"No"

?> 

  Ответить  
 
 автор: Лена   (16.01.2009 в 20:55)   письмо автору
 
   для: x2x2   (16.01.2009 в 20:33)
 


<?php 
$text
="Raz Dva Tri"
$c explode(" "$text);
for(
$i=0;$i<count($c);$i++){
    if(
$c[$i]=='Dva')
        print 
$i "Yes<br>"
    else 
        print 
$i "No<br>"
}
?>


Или вместо $c = explode(" ", $text); напишите: $c = str_word_count($text,1);

  Ответить  
 
 автор: AcidTrash   (16.01.2009 в 22:47)   письмо автору
 
   для: Лена   (16.01.2009 в 20:55)
 

А если будет
$text="Raz DvaTri"
?

P.S. Конечно наверно и не будет, но все же, ответ выше мне более нравиться. По крайней мере найти, заданную последовательность символов.

  Ответить  
 
 автор: Лена   (16.01.2009 в 23:01)   письмо автору
 
   для: AcidTrash   (16.01.2009 в 22:47)
 

>$text="Raz DvaTri"
ну так же можно выдумать все, что угодно. А позицию можно найти и через str_word_count($text,2);

  Ответить  
 
 автор: Николай2357   (16.01.2009 в 23:13)   письмо автору
 
   для: Лена   (16.01.2009 в 23:01)
 

Вы абсолютно правы, но универсальный ответ лучше частного... При всём моём к Вам уважении не могу не отметить, что эта функция проигнорирует так же и кирилицу.

  Ответить  
 
 автор: Лена   (16.01.2009 в 23:49)   письмо автору
 
   для: Николай2357   (16.01.2009 в 23:13)
 

>эта функция проигнорирует так же и кирилицу

$text="Раз Три Два"; 
$c = str_word_count($text,1,"ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбюё");
print_r($c);

  Ответить  
 
 автор: AcidTrash   (16.01.2009 в 23:19)   письмо автору
 
   для: Лена   (16.01.2009 в 23:01)
 

ну так же можно выдумать все, что угодно
Можно.
str_word_count($text,2);
Не сработает при
$text="Raz Tri Dva".

  Ответить  
 
 автор: Лена   (16.01.2009 в 23:52)   письмо автору
 
   для: AcidTrash   (16.01.2009 в 23:19)
 

>Не сработает при $text="Raz Tri Dva".
действительно, при str_word_count($text,2); не сработает, но при str_word_count($text,1) срабатывает.

  Ответить  
 
 автор: Trianon   (16.01.2009 в 23:33)   письмо автору
 
   для: Лена   (16.01.2009 в 20:55)
 

Полагаете, автору это поспособствует?

  Ответить  
 
 автор: x2x2   (16.01.2009 в 23:41)   письмо автору
 
   для: Trianon   (16.01.2009 в 23:33)
 

Спасибо ddhvvn, воспользовался первым вариантом. Так как иногда надо проверять на несколько слов.

  Ответить  
 
 автор: Лена   (16.01.2009 в 23:56)   письмо автору
 
   для: Trianon   (16.01.2009 в 23:33)
 

Это уже автор сам должен решить. Он же не сказал в самом начале, что ему нужно несколько слов искать.
Согласна, без цикла лучше.

  Ответить  
 
 автор: Николай2357   (17.01.2009 в 00:19)   письмо автору
 
   для: Лена   (16.01.2009 в 23:56)
 

<?php  
$text
="Раз Три Два";  
$c str_word_count($text,1);
for(
$i=0;$i<count($c);$i++){ 
    if(
$c[$i]=='Три'
        print 
$i "Yes<br>";  
    else  
        print 
$i "No<br>";  

?>

  Ответить  
 
 автор: Лена   (17.01.2009 в 00:34)   письмо автору
 
   для: Николай2357   (17.01.2009 в 00:19)
 

Я вам в предыдущем посте написала. Вот так надо:

<?
$text
="Раз Три Два";   
$c str_word_count($text,1,"ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбюё");
print_r($c); 
for(
$i=0;$i<count($c);$i++){  
    if(
$c[$i]=='Три')  
        print 
$i "Yes<br>";   
    else   
        print 
$i "No<br>";   
}
?>

  Ответить  
 
 автор: Николай2357   (17.01.2009 в 00:47)   письмо автору
 
   для: Лена   (17.01.2009 в 00:34)
 

Сдаюсь, сдаюсь... )))

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

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