последний элемент массива
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
последний элемент массива - 2008-08-13 09:04:07.196666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
знаю вопрос нубский , но всё же 1)count($str_arr)-1 выведет последний эл-нт массива $str_arr[$i] ? 2) как с помощью substr() вывести последний элемент массива если кол-во элементов массива задаётся вводом?..
|
|
|
RE: последний элемент массива - 2008-08-13 10:17:44.580000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
ещё один вопрос созрел: есть условный оператор: <?php …. if(!isset($_GET['string']){ form(); exit; } …. ?> выходит ошибка типа Parse error: syntax error, unexpected '{' в чём дело? =)
|
|
|
RE: последний элемент массива - 2008-08-13 10:17:48.033333
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
Если ты подразумеваешь под словом массив строку, тогда $str[strlen($str)-1] или substr($str, -1); quote:
ORIGINAL: brtn ещё один вопрос созрел: есть условный оператор: <?php …. if(!isset($_GET['string']){ form(); exit; } …. ?> выходит ошибка типа Parse error: syntax error, unexpected '{' в чём дело? =) Эту ошибку надо искать во всем коде, а не в куске, который ты вырезал.
|
|
|
RE: последний элемент массива - 2008-08-13 10:20:51.186666
|
|
|
Denisska05
Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
|
Дело в неуместном '{' либо какомто знаке вроде ;.. в php чес говоря вообще не шарю, но думаю нужно видеть весь код скрипта. Ну вот всегда так.. удлите мой пост -) Орб опередил.
|
|
|
RE: последний элемент массива - 2008-08-13 10:24:00.366666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
oRb, спс. Нее ошибка именно в строке " if(!isset($_GET['string']){ " имхо текст ошибки полностью таков : Parse error: syntax error, unexpected '{' in /www_host/hosts/example.ru/ascii2.php on line 8 , где line 8 эта строка =)
|
|
|
RE: последний элемент массива - 2008-08-13 10:25:58.186666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
Denisska05, полный текст : <?php function form() { print("<form action=? method=GET>"); Print("Input plz: <input type=text name=string>"); Print("<input type=submit value=ok>"); Print("</form>"); } if(!isset($_GET['string']){ form(); exit; } $string = $_GET['string']; $p=0; for ($i=0,$i < strlen($string),$i++) { $srt_arr[$i] = substr($string,$i,1); $p = $p + 1 ; }; for($i=0, $i < strlen($string), $i++){ if( $i==substr($string,$p,1);{ $res['n']=ord($str_arr['i']); }; else { $res['n']=ord($str_arr['i'])"," ; }; Print ("char( $res['n'] )"); ?> =) если поможет
|
|
|
RE: последний элемент массива - 2008-08-13 10:35:09.906666
|
|
|
Denisska05
Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
|
for ($i=0,$i < strlen($string),$i++) { $srt_arr[$i] = substr($string,$i,1); $p = $p + 1 ; }; — тут ; после } if(!isset($_GET['string']){ form(); exit; } – тут почему ее нет? function form() { print("<form action=? method=GET>"); Print("Input plz: <input type=text name=string>"); Print("<input type=submit value=ok>"); Print("</form>"); } –и тут. Сори конечно если глупость, не шарю в пхп)
|
|
|
RE: последний элемент массива - 2008-08-13 10:39:09.330000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
Denisska05 скорее наобород, ";" не обязательно ставить после } =)
|
|
|
RE: последний элемент массива - 2008-08-13 10:39:55.330000
|
|
|
Denisska05
Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
|
а ты попробуй так function form() { print("<form action=? method=GET>"); Print("Input plz: <input type=text name=string>"); Print("<input type=submit value=ok>"); Print("</form>"); };
|
|
|
RE: последний элемент массива - 2008-08-13 10:42:14.216666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
Ну дык, пхп правильно орет. quote:
if(!isset($_GET['string']) считаем количество открывающих скобок и кол-во закрывающих.
|
|
|
RE: последний элемент массива - 2008-08-13 10:49:04.600000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
хахах я лупень =) спасиб парни , вы поглядывайте иногда в этот топик , я если вопросы появятся,а они появятся , сюда их отписывать буду чтобы топиками не мусорить =)
|
|
|
RE: последний элемент массива - 2008-08-13 11:05:51.476666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
опять упёрся в потолок своих знаний =( ошибка : Parse error: syntax error, unexpected ')', expecting ';' in /www_host/hosts/example.ru/ascii2.php on line 14 <?php function form() { print("<form action=? method=GET>"); print("Input plz: <input type=text name=string>"); print("<input type=submit value=ok>"); print("</form>"); } if(!isset($_GET['string'])){ form(); exit; } $string = $_GET['string']; for ($i=0,$i<strlen($string),$i++ ) { $srt_arr[$i] = substr($string,$i,1); } for($i=0, $i < strlen($string), $i++){ if( $i==substr($string,-1){ $res['n']=ord($str_arr['i']); } else { $res['n']=ord($str_arr['i'])"," ; }} print ($res['n']); ?>
|
|
|
RE: последний элемент массива - 2008-08-13 11:14:35.103333
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
В цикле for, надо не запятые ставить, а ";"
|
|
|
RE: последний элемент массива - 2008-08-13 11:27:48.816666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
о, точно. опять долблю головой в стену : $res['n']=ord($str_arr['i'])"," ; т.е. мне надо чтобы в вектор $res['n'] записовались элементы $str_arr['i'] и после каждой записи ставилась запятая… ошибка : Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /www_host/hosts/ex.ru/ascii2.php on line 22
|
|
|
RE: последний элемент массива - 2008-08-13 11:29:37.486666
|
|
|
Denisska05
Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
|
$res['n']=ord($str_arr['i']+',') ; наверно как-то так. или так- $res['n']=ord($str_arr['i'])+"," ; и еще .. спросил гугл он сказал что будет запсиан не элемент строки а его ACSII код.. который вернет фунцкия ord()
|
|
|
RE: последний элемент массива - 2008-08-13 11:39:03.536666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
quote:
ORIGINAL: Denisska05 $res['n']=ord($str_arr['i']+',') ; наверно как-то так. или так- $res['n']=ord($str_arr['i'])+"," ; и еще .. спросил гугл он сказал что будет запсиан не элемент строки а его ACSII код.. который вернет фунцкия ord() ни в первом , ни во втором случае должного результата не добился , хоть и пропало сообщение об ошибки =) + мне и надо "не элемент строки а его ACSII код.. который вернет фунцкия ord()" =)
|
|
|
RE: последний элемент массива - 2008-08-13 11:44:43.416666
|
|
|
Denisska05
Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
|
Опять спросил гугл говоорит операция конкатенации обозначается знаком "." $res['n']=ord($str_arr['i'])."," ; пробуй правда есть сомнения что к числу он строку не прибавит поэтому нужно что-то вроде $res['n']=IntToStr(ord($str_arr['i']))."," ; IntToStr это из C++/Delphi.. аналог php ищи.. вроде string() или strval() P.S. так и php осовоить недолго..
|
|
|
RE: последний элемент массива - 2008-08-13 11:47:35.490000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
знакомая проблемма.. тебе по сути надо сложить текст, но в пхп знаком + текст сложить нельзя.. всесто этого используют точку надо так писать $res['n']=ord($str_arr['i']) . "," ;
|
|
|
RE: последний элемент массива - 2008-08-13 13:26:29.520000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
Denisska05, ага понятно, пробую ) спс … я и сам пхп изучаю 3-ий день ) magistr_bender, спс + =)
|
|
|
RE: последний элемент массива - 2008-08-13 14:01:15.573333
|
|
|
_hel_
Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
|
brtn, if( $i==substr($string,-1){ Опять-же, скобка закрывающая одна отсутствует. Внимательней надо быть. И пересмотри код, я не вижу в нём логики. Например в вышеприведённом выражении. Поясняю: "substr() возвращает подстроку строки string длиной length, начинающегося с start символа по счету." Получается что ты подстроку сравниваешь с числом. :) "$srt_arr", "$str_arr" - опечатки налицо.
|
|
|
RE: последний элемент массива - 2008-08-13 14:15:31.266666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
_hel_ , дада, это наброски были а код уже полностью исправлен и работает =) разве что вывести у меня массив не получается : for($n=1; $n <= count($res['n']); $n++){ print("char(".$res['n'].")"); } опятьже где-то косяк
|
|
|
RE: последний элемент массива - 2008-08-13 14:26:56.803333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
quote:
ORIGINAL: _hel_ "substr() возвращает подстроку строки string длиной length, начинающегося с start символа по счету." Получается что ты подстроку сравниваешь с числом. :) непонял… я возвращал подстроку длиной в 1 символ с начального параметра $i , т.е. по символьно загонял это в вектор ( а может прально одномерный массив называть? в vb просто вектором их называют =) )
|
|
|
RE: последний элемент массива - 2008-08-13 16:06:24.390000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
ещё проблемка , for($i=0;$i<strlen($string);$i++ ) { $str_arr['i']=substr($string,$i,1); } в массиве остаётся только последний элемент ( , где косяк? =)
|
|
|
RE: последний элемент массива - 2008-08-13 16:18:42.226666
|
|
|
Denisska05
Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
|
for($i=0;$i<strlen($string);$i++ ) { $str_arr[$i]=substr($string,$i,1); } по идее так..
|
|
|
RE: последний элемент массива - 2008-08-13 17:41:52.870000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
УРА!!! работает =) осталось только оформить , но это завтра и готово =) http://www.likephp.ex6.ru/ascii.php а смысл этого всего в шифровке и sql иньекций =)
|
|
|
RE: последний элемент массива - 2008-08-13 21:28:09.636666
|
|
|
mrxakep
Сообщений: 107
Оценки: 0
Присоединился: 2008-07-08 10:55:00.986666
|
Имхо бред. Одна строка на PHP?
|
|
|
RE: последний элемент массива - 2008-08-14 07:51:04.140000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
какая одна строка? типа ord(str) ? ну попробуй сам…
|
|
|
RE: последний элемент массива - 2008-08-14 16:50:39.250000
|
|
|
_hel_
Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
|
<?php
$string = "hello!";
$size = strlen($string);
// способ 1.
for( $i = 0; $i < $size; $i++ )
{
printf( "%x", ord( $string{ $i } ) );
}
print "<br><br>";
// способ 2.
print bin2hex( $string );
?>
|
|
|
RE: последний элемент массива - 2008-08-14 17:33:53.686666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
ну это первыое моё знакомство с пхп было, вот и усложнил себе задачу ) а если в 16-ричную систему надо перевести ?
|
|
|
RE: последний элемент массива - 2008-08-14 17:37:56.643333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: _hel_ "substr() возвращает подстроку строки string длиной length, начинающегося с start символа по счету." Получается что ты подстроку сравниваешь с числом. :) А разве пхп не приводит строку при необходимости к числу? Или число к строке? По-моему, что-то из этого он делает.
|
|
|
RE: последний элемент массива - 2008-08-14 17:50:40.803333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
_hel_, что-то bin2hex() возвращает другой результат в отличии от ord
|
|
|
RE: последний элемент массива - 2008-08-14 17:53:13.413333
|
|
|
Denisska05
Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
|
Ну так орд возвращает ASCII код а bin2hex переводит из двоичной в шеснадцатиричную если я не ошибаюсь. P.S. надеюсь ты понимаешь что это совершенно разные числа..
|
|
|
RE: последний элемент массива - 2008-08-14 21:37:23.626666
|
|
|
_hel_
Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
|
quote:
ORIGINAL: rgo А разве пхп не приводит строку при необходимости к числу? Или число к строке? По-моему, что-то из этого он делает. Только если строка является числом (к примеру "-0.0021"), обычные буквы не приводятся. Пример: print "a" * 0.11 . "<br>";
// --------
if( ( $a = "a") > 0 )
{
print $a . " !";
} В первом случае выводится 0, во втором ничего. Тестил на версии 5.2.1. brtn: С помощью ord ты получаешь код символа в 10 СС. Поэтому после его получения его нужно привести к 16 СС прежде чем сравнивать с результатом bin2hex. bin2hex переводит строку в её так-сказать сырой вид, сразу же в 16 СС. Поэтому тут его предпочтительней использовать. зы: СС - система счисления.
|
|
|
RE: [Deleted] - 2008-08-15 22:12:50.836666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
понапрягал гугл , мануалы ,и… напишите, кому не лень, функции перевода из одной сс в другую ( все, которые вам известны) заранее спс ) и осбенно интересно обратное возвращение в десятичную сс, что-то типа "ox12…" при переводе из шестнадцетиричной
|
|
|
RE: [Deleted] - 2008-08-15 23:56:42.423333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
можно я, можно я? /тянет руку/ вообще я обычно пользуюсь листиком и ручкой для таких вещей.. .но если серьёзно то есть 3 функции для этого decbin dechex decoct думаю какая во что переводит понятно ну и естественно обратная функция base_convert
|
|
|
RE: [Deleted] - 2008-08-17 00:04:43.293333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
т.е. к примеру: $str=123 1)dexbin($str) переводит двоичное ЧИСЛО ( можно ли текст и знаки? ) в 10-ричное.., char(dexbin($str)) вернёт 123. а вот как с dechex, decoct знаю лишь понаслышке. плз поподробнее, не до абсурда конечно , но чтобы не приходилось переспрашивать =)
|
|
|
RE: [Deleted] - 2008-08-17 22:43:20.530000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
decbin – Decimal to binary(двоичная СС) dechex – Decimal to hexadecimal(16-ричная СС) decoct – Decimal to octalнасчёт чисел думаю всё ясно.. а вот текст кодитуется помоиму иначе
|
|
|
RE: последний элемент массива - 2008-08-18 02:25:57.303333
|
|
|
Roneon
Сообщений: 220
Оценки: 0
Присоединился: 2004-03-12 09:02:53
|
quote:
ORIGINAL: brtn ещё один вопрос созрел: есть условный оператор: <?php …. if(!isset($_GET['string']){ form(); exit; } …. ?> выходит ошибка типа Parse error: syntax error, unexpected '{' в чём дело? =) хз актуально ли ещё, но я пробежался по ответам глазами и не заметил правильного ответа… В общем, здесь не хватает скобки :) Имеем (!isset($_GET['string']), нужно !isset($_GET['string'])).
|
|
|
RE: [Deleted] - 2008-08-18 02:35:44.853333
|
|
|
Roneon
Сообщений: 220
Оценки: 0
Присоединился: 2004-03-12 09:02:53
|
quote:
ORIGINAL: brtn т.е. к примеру: $str=123 1)dexbin($str) переводит двоичное ЧИСЛО ( можно ли текст и знаки? ) в 10-ричное.., char(dexbin($str)) вернёт 123. а вот как с dechex, decoct знаю лишь понаслышке. плз поподробнее, не до абсурда конечно , но чтобы не приходилось переспрашивать =) Функции dexbin нет. Функция decbin действует нарборот. Из двоичной в десятичную переводит bindec. Далее… в php нет ф-и char, скорее уж chr() тогда. Но в таком случае не ясно, почему выводит "123". У меня вот так: [modusso3@cp3 ~]$ echo "<? echo chr(decbin(123)); ?>" > 1.php
[modusso3@cp3 ~]$ php 1.php
Content-type: text/html
X-Powered-By: PHP/4.3.9
Ц В общем нихрена не ясно на самом деле. По поводу функций с числами для текста - лучше уж переводить текст в числа, (int)$char прекрасно работает.
|
|
|
RE: [Deleted] - 2008-08-18 21:39:04.703333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
Roneon, со скобкой разобрались уже давно =), а про функции перевода в различныее сс ищу нормальный мэнуал, по другому видимо никак =)
|
|
|
|
|