PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (22): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец

> Найдено сообщений: 329
MAXUS Отправлено: 12 Ноября, 2014 - 11:41:51 • Тема: Количество символов в строке юникод • Форум: Кодировки и все смежное

Ответов: 4
Просмотров: 2822
Была такая тема, но не могу найти.

PHP:
скопировать код в буфер обмена
  1. $expr="10л!==1";
  2.  
  3. echo strlen($expr)."<br />";
  4. echo mb_strlen($expr)."<br />";


В обоих случаях возвращает 8.

PHP:
скопировать код в буфер обмена
  1. $expr="10w!==1";
  2.  
  3. echo strlen($expr)."<br />";
  4. echo mb_strlen($expr)."<br />";


В обоих случаях возвращает 7.

Понятно, что возвращается количество байт. Но не понятно тогда:
1. Чем mb_strlen отличается от strlen?
2. А как правильно найти количество символов в строке юникод?
MAXUS Отправлено: 12 Ноября, 2014 - 09:22:07 • Тема: Option в javascript • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 1415
usa-1500 пишет:
Решил для теста попробовать получить доступ к селекту через джаваскрипт без цикла и оно ничего не выдает на экран, не отображает никакого значения на экран, в чем не так?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. //Получаем все элементы с тегом form
  3. var m = document.getElemtsByTagName('form');
  4. //Присваиваем переменной селект значения всех элементов селекта первой формы
  5. var select = m.elements.genre;
  6. //Получаем доступ к значению первого элемента селекта, но доступ не происходит, почему?
  7. document.write(select.options[0].value);
  8.  
  9.  


Еще раз. document.getElemtsByTagName('form'); возвращает массив элементов. Набери console.log(m) и все поймешь. Соответственно, обращаться к элементам надо var select = m[0].elements.genre; и var select = m[1].elements.music;
MAXUS Отправлено: 11 Ноября, 2014 - 22:29:28 • Тема: Option в javascript • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 1415
usa-1500 пишет:
Почему не работает без этой строки код? Почему не выводит хотя есть document.writeln? Какую важную роль в этом именно коде играет эта строка?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  var forms = document.getElementsByTagName('form');


Возвращает массив элементов с тэгом form. Формы на странице две, поэтому элемента в массиве два. Сначала работаешь с селектом из первой формы var select = forms[0].elements.genre, потом из второй var select = forms[1].elements.music;
MAXUS Отправлено: 11 Ноября, 2014 - 21:48:18 • Тема: не работает вложеный include • Форум: Вопросы новичков

Ответов: 6
Просмотров: 358
Chelovek пишет:
Include есть в файле Index.php
Сори, забыл написать. Просто чтобы не писать весь текст упростил задачу и написал суть.
Отредактировал начальное сообщение на форуме.


Попробовал. Все работает. Видимо, надо весь код смотреть.
MAXUS Отправлено: 11 Ноября, 2014 - 20:49:53 • Тема: не работает вложеный include • Форум: Вопросы новичков

Ответов: 6
Просмотров: 358
Chelovek пишет:

То-есть не видит файл index переменную $abc и все.


Дак а в index.php инклюд надо сделать. Причем до вывода переменной.
MAXUS Отправлено: 11 Ноября, 2014 - 19:17:05 • Тема: Прочить php , достать код... • Форум: Вопросы новичков

Ответов: 2
Просмотров: 105
Weber пишет:
Как так подгрузить php код, чтобы он не выполнился это раз и второе.
Достать код php скрипта , без "<?" данного символа в начале...


Возможно, это называется функция или класс.
MAXUS Отправлено: 11 Ноября, 2014 - 16:59:31 • Тема: Что должно возвращать $s-++$s • Форум: Вопросы новичков

Ответов: 5
Просмотров: 276
Sail пишет:
MAXUS, вот ещё вариант, возвращающий требуемую разницу и присваивающий необходимое значение:


Ну да. Но я не абетамУлыбка Я не учел порядок выполнения и втупил. А в этом примере порядок не важен. Выполняется все последовательно. Т.е. принципиально было понять, почему именно тот вариант работает не так, как я ожидал. Когда прочитал название ссылки все встало на свои местаУлыбка Такшта еще раз спасибо (тыкнул в карму)Улыбка
MAXUS Отправлено: 11 Ноября, 2014 - 16:34:20 • Тема: Что должно возвращать $s-++$s • Форум: Вопросы новичков

Ответов: 5
Просмотров: 276


Все. Вкурил. СпасибоУлыбка



Так вернет -1.

Ну, или так:


Вощем, разобрался.
MAXUS Отправлено: 11 Ноября, 2014 - 16:06:50 • Тема: Что должно возвращать $s-++$s • Форум: Вопросы новичков

Ответов: 5
Просмотров: 276


По идее должно вернуть -1. Возвращает 0. В чем рамс?
MAXUS Отправлено: 09 Ноября, 2014 - 00:37:09 • Тема: Проверка, есть ли в массиве число > 0 • Форум: Программирование на PHP

Ответов: 12
Просмотров: 2011
LIME2 пишет:
офигеть столько кода написать вместо 1 фции
(Добавление)
MAXUS пишет:
Напечатает 1.
ичто???
есть же не пустые значения
(Добавление)
возвратит фолс только если пустой массив придет


Ты, вероятно, какие-то свои задачи решаешь...
Задача в этой ветке была: "Нужно проверить, есть ли в массиве (расположенном в другом фале) число больше 0. Хоть одно."
MAXUS Отправлено: 09 Ноября, 2014 - 00:31:35 • Тема: Проверка, есть ли в массиве число > 0 • Форум: Программирование на PHP

Ответов: 12
Просмотров: 2011
LIME2 пишет:
офигеть вы тупанули
$result = (bool)array_filter($arr);


Я бы тебе посоветовал проверять свой код, прежде чем его публиковать.

PHP:
скопировать код в буфер обмена
  1. $array=array(-10,-40,-4,-98,-72,-50,-390,-4,-1,-4877,0,0,0,-9,-34,-56,-29,-45,-70);
  2. echo (bool)array_filter($array).'<br />';


Напечатает 1.
MAXUS Отправлено: 09 Ноября, 2014 - 00:13:30 • Тема: Проверка, есть ли в массиве число > 0 • Форум: Программирование на PHP

Ответов: 12
Просмотров: 2011
Мелкий пишет:

Да и суть бинарного поиска немного неверно описана.


Не. Тут я только принцип использовал. Суть (бить пополам) как раз подходит. А вот что быстрее - это вопрос интересный. Рекурсию, в принципе, можно переделать и обойтись без нее. А вот, что быстрее, просто перебор или тот способ, что я указал... Это интересно проверить.

Хотя че там проверять?! Улыбка У меня ровно то же самое и происходитУлыбка Прошли первую половину и пошли дальше по третьей четверти, потом по первой половине четвертой четверти. Короче, просто перебор и получаетсяУлыбка Это я молодецУлыбка Вощем, ты прав. Просто перебора достаточно. И о сути бинарного поиска я, соответственно, тоже воткнул (в смысле, догнал, в смысле осознал)...

Но идея в том, что не надо фильтр. Он пока все не переберет, не успокоится.

Ну и эта... Снимаю шляпу. Приятно, когда не зря мозг включалУлыбка
MAXUS Отправлено: 08 Ноября, 2014 - 23:08:29 • Тема: Проверка, есть ли в массиве число > 0 • Форум: Программирование на PHP

Ответов: 12
Просмотров: 2011
LIME пишет:
0 приводится к false
я ошибаюсь?


вернет true
(Добавление)
teddy пишет:
PHP:
скопировать код в буфер обмена
  1. $result = (bool)array_filter($arr, function($val){
  2.     return is_int($val) && $val > 0;
  3. });
  4. var_dump($result);


Как ни странно, но я бы решение задачи для больших массивов усложнил. Дело в том, что array_filter пройдет по всему массиву, даже если значение больше 0 находится в первом же элементе. Если массив большой, то это не оптимально. Я бы проходил циклом по принципу, как при поиске обрабатываются индексы в базе данных. Т.е. бьем массив пополам и проходим по первой половине (естественно прерываем работу функции, как только нашли значение больше 0), если в первой половине не нашли, бьем пополам остаток массива и ищем в его первой половине... И так далее, пока весь не разберем. В этом случае вероятность не обрабатывать весь массив гораздо выше.

PHP:
скопировать код в буфер обмена
  1. $array=array(-10,-40,-4,1,-72,-50,-390,-4,-1,-4877,0,0,0,-9,-34,-56,-29,-45,-70);
  2. function find_positive($array){
  3.         if(count($array)==1) return (is_int($array[0]) && $array[0]>0)?true:false;
  4.         for($i=0;$i<ceil(count($array)/2);$i++){
  5.                 //echo $i.' = '.$array[$i].'<br />';
  6.                 if(is_int($array[$i]) && $array[$i]>0) return true;
  7.         }
  8.         return find_positive(array_slice($array,ceil(count($array)/2)));
  9. }
  10. echo (find_positive($array))?'есть':'нет';


Пройдет по циклу до 4-го элемента и прервется. Можно поэкспериментировать, раскомментировав строку в цикле и изменяя начальный массив.

Добавление
Хотя первый вариант, как обычно не самый идеальный. В моем случае происходит разбиение массива при помощи array_slice, то, вероятно, тоже не оптимально. Поэтому переделал так, чтобы массив вообще не преобразовывался.

PHP:
скопировать код в буфер обмена
  1. $array=array(-10,-40,-4,-98,-72,-50,-390,-4,-1,-4877,0,0,0,9,-34,-56,-29,-45,-70);
  2. function find_positive(&$array,$start){
  3.         if($start==count($array)-1) return (is_int($array[$start]) && $array[$start]>0)?true:false;
  4.         for($i=$start;$i<ceil((count($array)+$start)/2);$i++){
  5.                 // echo $i.' = '.$array[$i].'<br />';
  6.                 if(is_int($array[$i]) && $array[$i]>0) return true;
  7.         }
  8.         return find_positive($array,ceil((count($array)+$start)/2));
  9. }
  10. echo (find_positive($array,0))?'есть':'нет';


Кстати, прикольно будет, если кто-то поймет смысл содеяннногоУлыбка
MAXUS Отправлено: 08 Ноября, 2014 - 18:51:47 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
LIME пишет:
но все же \w* моими стараниями ушло))


Это да. Этого не отнятьУлыбка

Страниц (22): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB