X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Работа со строками, strcmp(), strlen(), str(pos), substr(), str_repeat(), ...
Banderas
Banderas
Topic Starter сообщение 19.5.2009, 11:22; Ответить: Banderas
Сообщение #1


Создал тему, поскольку сейчас изучаю этот раздел PHP. Буду задавать вопросы, если что не будет получатся, надеюсь получать ответы =)

Пожалуй начну...
Учусь использовать функцию strcmp(). Самое простое понял, но вот пописать условие с ней - не могу. Пишет ошибку:
Parse error: syntax error, unexpected T_IS_IDENTICAL in Z:\home\localhost\www\admin\st.php on line 4

Пробовал заменять 1 на true - всеровно не хочет :P Сам код:
<?
$o = "Богдан";
$a = "Владимирович";
if (strcmp($a, $o)) == 1)  // если строка "а" больше строки "о" - выводит 1. Если 1=1 то выводдит Владимирович > Богдан
{echo "$a > $o"}
else
{echo "шото не так"};
?>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 19.5.2009, 17:04; Ответить: gaaarfild
Сообщение #2


Потому что разница между строками не равна 1. Рекомендую в условии поставить
if (strcmp($a, $o)) > 0)  // если строка "а" больше строки "о" - выводит 1. Если 1=1 то выводдит Владимирович > Богдан
{echo "$a > $o"}
else
{echo "шото не так"};

Думаю. так будет правильнее.


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 19.5.2009, 23:52; Ответить: Banderas
Сообщение #3


Сенк. Я что-то сразу недодул =)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 21.5.2009, 16:11; Ответить: Banderas
Сообщение #4


Как использовать функцию str_replace()? У меня в учебнике написан кой-то бред, типа:
Нам нужно заменить \n на <br>. Сделаем это так:
$str = str_replace("\n","<br>",$str);

Я ничего толком не понял, может кто-то укажет источник или боьясит на практике как его используют веб-мастера?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 21.5.2009, 16:21; Ответить: Banderas
Сообщение #5


Есть ещё один вопрос :)
Например я хочу что бы в тексте заменило знак " на знак '. Пишу такой код:
<?php
$a = "Hello "world". How r u?"; // не катит :( из-за "
$s = strtr ($a,' " '," ' ");
echo $s;
?>

Как сделать что бы " читалось? Или в крайнем случае заменялось.

ps. Просто хочу написать скриптик, для подсчета символов с помощью strlen().
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 21.5.2009, 19:35; Ответить: ZiTosS
Сообщение #6


Banderas, по поводу str_replace. У функции 4 параметра (последний необязательный)
mixed str_replace(mixed $search  , mixed $replace  , mixed $subject  [, int $&count  ] )

Функция возвращает данные различных типов - строка, массив.
$search - то что ищем в заданном параметре (строка, массив)
$replace - то на что заменяем каждое найденное $search (строка, массив)
$subject - то в чём ищем, строка или массив
$count - Начиная с PHP 5.0.0 количество произведенных замен может быть получено в необязательном аргументе count , который передается по ссылке. В версиях до PHP 5.0.0 этот аргумент недоступен.
Данная функция используется при заменах в строках или массивах, это очень удобно: Например BB-коды, шаблоны, ненужные символы.

Вот к примеру у тебя есть строка $str, в ней есть перенос строк, но его же HTML явно не понимает, а понимает тег <br>. Поэтому когда пользователь вводит в многострочное поле что-то на нескольких строках, браузеру присылается не строка с <br>, а строка с \n. Можно перед помещением в базу или файл сделать преобразование именно так как показано ниже:
$str = str_replace("\n","<br>",$str);


А вообще более точную информацию можно почитать про данную функцию здесь, да и примеров посмотреть

По поводу второго вопроса...
Запоминай, что подобные символы в строках нужно экранировать.
$a = "Hello \"world\". How r u?";


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 22.5.2009, 16:44; Ответить: Banderas
Сообщение #7


2*ZiTosS* Спасибо!
Но мне надо будет что бы в переменную $a могли вводится любые символы без каких либо замен. Слышал есть функция которая выводит текст как он есть, она поможет?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 22.5.2009, 17:21; Ответить: ZiTosS
Сообщение #8


Banderas, Пойми, текст так и выводится как он есть, ты просто экранируешь спецсимволы. Даже когда ты берёшь какую-то переменную из базы у тебя автоматом идёт экранировка символов, которые могут помешать работе интерпретатора. Сам можешь проверить.
Выведи мою строку в браузер и ты увидишь не
Hello \"world\". How r u?

А
Hello "world". How r u?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 22.5.2009, 18:32; Ответить: Banderas
Сообщение #9


Нет. Ты не понял что я хотел сказать, или я не так сказал. Мне нужно что бы можно было вписать в переменную $a символы " ' * & ^ #. Конечно, я могу без проблем экранировать их слешем, но если текста на 1,5к символов? И если операция должна проводится автоматически?

Я думал сделать так, что бы данные посылались через форму и сразу проходили через str_replace() для замены, а потом сразу через strlen() и выводило количество символов. Но не знаю поможет ли... Не знаю как лучше профильтрировать текст из формы через " ' * & ^ # что бы не писать по 10 раз str_replace(). Может нужно написать функцию?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 22.5.2009, 18:44; Ответить: ZiTosS
Сообщение #10


Banderas, не пойму что тебе нужно. А вообще если ты внимательно читал мой пост. Параметрами функции str_replace могут быть массивы замен. Удобно и со вкусом :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужна работа
0 filatd 706 12.1.2024, 17:08
автор: filatd
Открытая тема (нет новых ответов) Работа: Разная рутина
Работа, разные рутинные задачи: постинг / переговоры / поиск
1 ivanshargin 929 31.10.2023, 17:55
автор: ServersExpert
Открытая тема (нет новых ответов) Нужна удаленная работа
Нужна удаленная работа
0 filatd 990 12.9.2023, 11:40
автор: filatd
Открытая тема (нет новых ответов) Нужны тексты для сайта, работа на постоянку
6 danilchuk88 1582 19.3.2023, 0:53
автор: malamut
Открытая тема (нет новых ответов) Работа по размещению ссылок
1 masterstraff 2060 17.12.2022, 2:43
автор: aspi


 



RSS Текстовая версия Сейчас: 28.3.2024, 17:18
Дизайн