Добрый вечер, подскажите какой оператор обрабатывает буквы (символы) содержащиеся в переменной? Нужно написать условие типа: Если последняя (-нии) буквы в переменной равны ..., ТО выполнить следующее... Если нет...
substr() функция. Можно задать отрицательную позицию - тогда возьмет с конца. Но в пхп можно к любой строке обратиться как к массиву, со всеми вытекающими.
Спасибо за ответы, но мне ничего не понятно Вы можете дописать на php такую строчку: $y=$_POST[y]; $x=$_POST[x]; определяем последние буквы в двух переменных; if последняя буква в $y равнa "a" замещаем последнюю букву в $x на эту "а"; ... и echo обе переменные; Спасибо.
кузмич, такой фокус не прокатит пока вроде как. Вроде как пока еще символы в массиве у строки будут байтами, а возвращает iconv_strlen возможно мультибайтное кол-во. и будет косяк. Код (PHP): $y=$_POST['y'];//кавычки не забываем $x=$_POST['x'];//нет смысла присваивать значение поста переменной, если никакие операции над значением не производятся. if ($char == mb_substr($y, -1, 1) ) { ////////////////////////////////////////
Ну как сказать у меня все нормал работает так шо так) Добавлено спустя 29 секунд: Код (Text): <?php $y='scssa'; $char='a'; $x='scs'; if($y[iconv_strlen($y)-1]==$char)$x[iconv_strlen($x)-1]=$char; print($x); ?> sca Добавлено спустя 2 минуты 9 секунд: Версия php 5.3.3 Такая фигня от 5.3.0 пашет а ниже не знаю Добавлено спустя 1 минуту 53 секунды: mb_substr($y, -1, 1) и это лишнее mb_substr($y, -1) этог хватит)
Теперь все понятно Спасибо. Код, который прислал Артем работает. А как мне получить "остаток" от слова, т.е. слово без последней буквы? Оно пригодится в дальнейшей части кода Спасибо что так быстро отвечаете Добавлено спустя 3 минуты 50 секунд: Уточнение: мне нужно из слова получить две переменные: 1) последняя буква 2) слово без последней буквы а потом уже их сравнивать, замещать, менять...
Код (PHP): <?php // Слово $word = 'Слово'; // Получаем слово без последней буквы и последнюю букву $withoutLastLetter = mb_substr($word, 0, mb_strlen($word) - 1); $lastLetter = mb_substr($word, -1, 1); // Проверим, что получилось echo($withoutLastLetter . '<br />' . $lastLetter); ?> Если используешь кодировку utf-8 - то, возможно, нужно явно это указать последним параметром функций mb_*
Спасибо за помощь, скрипт работает как надо, за исключением кодировки: notepad++ научился как распознавать греческий, но в браузере (последняя опера) отображаются только квадратики. В любой кодировке браузера.
Для написания скрипта по согласованию в роде и числе сущ. и прилагательных. И раз уж вы спросили я тоже у вас спрошу: Что и как написать в скрипте чтобы: при подключении файла через includе скрипт сначала пробежался по файлу со списком слов, если "нашел там слово", то сделал с ранее заданными переменными то-то, если "не нашел", то поискал в с списке2, если "нашел там слово", то сделал с ранее заданными переменными то-то, если "и там не нашел слова", то "забил на списки и выполнял скрипт дальше". Как подключить файл я знаю, я не знаю как прописать в коде фразы, которые здесь выделены в " " И еще вопросы по самим спискам: 1)Файл может быть в формате txt или обязательно php? 2)Слова в списке можно просто в столбик написать по одному в строке или их нужно как-то оформлять? Заранее благодарю за ответы
а зачем вы всё слово без последней буквы сравниваете с последней буквой? о_О вот до этого места всё понятно а с этого уже не понятно можно забить ваши строки в массивы, но вобще люди используют БД - ее редактировать проще.
>а зачем вы всё слово без последней буквы сравниваете с последней буквой? о_О Я этого не делаю. Вам показалось Кроме того речь не о русском языке, так что, полагаю, вы не можете знать Что там с чем нужно сравнивать чтоб согласовать в роде >пробежался по файлу со списком слов, >а с этого уже не понятно скрипт должен обратиться к файлу и поискать там слово, введенное пользователем, если найдет, то... ( одно if) если не найдет, то (другое if: искать в другом списке) else выполнять скрипт дальше. Что тут не понятно? Я не знаю как прописать в скрипте "да, нашел", "нет не нашел", т.е. вернуть правду или ложь, но я не знаю как это оформить. Поможете? >можно забить ваши строки в массивы Нельзя. Слишком большой список. >, но вобще люди используют БД - ее редактировать проще. Как раз наоборот: текстовый файл со списком слов на ин.языке может отредактировать любой, знающий язык, а базу со списком слов на ин.языке - только гений, который и лингвист и программист в одном флаконе Кроме того у меня будет полсотни файлов, хостинг с таким кол-вом БД будет просто золотой! А у меня проект некоммерческий