Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

последний элемент массива

Пользователи, просматривающие топик: 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() вывести последний элемент массива если кол-во элементов массива задаётся вводом?..
Post #: 1
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 '{'
в чём дело? =)
Post #: 2
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

ещё один вопрос созрел: есть условный оператор:
&lt;?php
….
if(!isset($_GET['string']){
form();
exit;
}
….
?&gt;

выходит ошибка типа
Parse error: syntax error, unexpected '{'
в чём дело? =)

Эту ошибку надо искать во всем коде, а не в куске, который ты вырезал.
Post #: 3
RE: последний элемент массива - 2008-08-13 10:20:51.186666   
Denisska05

Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
Дело в неуместном '{' либо какомто знаке вроде ;.. в php чес говоря вообще не шарю, но думаю нужно видеть весь код скрипта.
Ну вот всегда так.. удлите мой пост -) Орб опередил.
Post #: 4
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&nbsp; ,&nbsp;где line 8 эта строка =)
Post #: 5
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'] )");
 ?>
 
=) если поможет

Post #: 6
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>");
} –и тут.

Сори конечно если глупость, не шарю в пхп)
Post #: 7
RE: последний элемент массива - 2008-08-13 10:39:09.330000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
Denisska05
скорее наобород, ";" не обязательно ставить после }  
=)
Post #: 8
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>");
};
Post #: 9
RE: последний элемент массива - 2008-08-13 10:42:14.216666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
Ну дык, пхп правильно орет.
quote:

if(!isset($_GET['string'])

считаем количество открывающих скобок и кол-во закрывающих.
Post #: 10
RE: последний элемент массива - 2008-08-13 10:49:04.600000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
хахах я лупень =)  спасиб парни , вы поглядывайте  иногда в этот топик , я если вопросы появятся,а они появятся , сюда их отписывать буду чтобы топиками не мусорить =)
Post #: 11
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 &lt; strlen($string), $i++){
if( $i==substr($string,-1){
$res['n']=ord($str_arr['i']);
 } else {
 $res['n']=ord($str_arr['i'])"," ;
 }}
print ($res['n']);
?>
 

 
Post #: 12
RE: последний элемент массива - 2008-08-13 11:14:35.103333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
В цикле for, надо не запятые ставить, а ";"
Post #: 13
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

Post #: 14
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()
Post #: 15
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()" =)

Post #: 16
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 осовоить недолго..
Post #: 17
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']) . "," ;
Post #: 18
RE: последний элемент массива - 2008-08-13 13:26:29.520000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
Denisska05, ага понятно, пробую ) спс … я и сам пхп изучаю 3-ий день )
magistr_bender, спс + =)

Post #: 19
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" - опечатки налицо.
Post #: 20
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'].")");
} опятьже где-то косяк
Post #: 21
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 просто вектором их называют =) ) 
 
Post #: 22
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);
}
в массиве остаётся только последний элемент ( ,  где косяк? =)
Post #: 23
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);
}
 
по идее так..
Post #: 24
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 иньекций =)
Post #: 25
RE: последний элемент массива - 2008-08-13 21:28:09.636666   
mrxakep

Сообщений: 107
Оценки: 0
Присоединился: 2008-07-08 10:55:00.986666
Имхо бред. Одна строка на PHP?
Post #: 26
RE: последний элемент массива - 2008-08-14 07:51:04.140000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
какая одна строка? типа ord(str) ?  ну попробуй  сам… 
Post #: 27
RE: последний элемент массива - 2008-08-14 16:50:39.250000   
_hel_

Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
&lt;?php $string = "hello!"; $size = strlen($string); // способ 1. for( $i = 0; $i &lt; $size; $i++ ) { printf( "%x", ord( $string{ $i } ) ); } print "&lt;br&gt;&lt;br&gt;"; // способ 2. print bin2hex( $string ); ?&gt;
Post #: 28
RE: последний элемент массива - 2008-08-14 17:33:53.686666   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
ну это первыое моё знакомство с пхп было, вот и усложнил себе задачу )
а если в 16-ричную систему надо перевести ?
Post #: 29
RE: последний элемент массива - 2008-08-14 17:37:56.643333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: _hel_
"substr() возвращает подстроку строки string длиной length, начинающегося с start символа по счету."
Получается что ты подстроку сравниваешь с числом. :)

А разве пхп не приводит строку при необходимости к числу? Или число к строке? По-моему, что-то из этого он делает.
Post #: 30
RE: последний элемент массива - 2008-08-14 17:50:40.803333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
_hel_, что-то bin2hex() возвращает другой результат в отличии от ord
 
Post #: 31
RE: последний элемент массива - 2008-08-14 17:53:13.413333   
Denisska05

Сообщений: 661
Оценки: 0
Присоединился: 2007-06-26 20:21:10.883333
Ну так орд возвращает ASCII код а bin2hex переводит из двоичной в шеснадцатиричную если я не ошибаюсь.
P.S. надеюсь ты понимаешь что это совершенно разные числа..
Post #: 32
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 . "&lt;br&gt;"; // -------- if( ( $a = "a") &gt; 0 ) { print $a . " !"; } В первом случае выводится 0, во втором ничего. Тестил на версии 5.2.1.

brtn:
С помощью ord ты получаешь код символа в 10 СС. Поэтому после его получения его нужно привести к 16 СС прежде чем сравнивать с результатом bin2hex.
bin2hex переводит строку в её так-сказать сырой вид, сразу же в 16 СС. Поэтому тут его предпочтительней использовать.

зы: СС - система счисления.
Post #: 33
RE: [Deleted] - 2008-08-15 22:12:50.836666   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
понапрягал гугл , мануалы ,и… напишите, кому не лень, функции перевода из одной  сс  в другую ( все, которые вам известны) заранее спс ) и осбенно интересно  обратное возвращение в  десятичную сс, что-то типа "ox12…" при переводе из шестнадцетиричной
Post #: 34
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
Post #: 35
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 знаю лишь понаслышке.
плз поподробнее, не до абсурда конечно , но чтобы не приходилось переспрашивать =)
Post #: 36
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насчёт чисел думаю всё ясно.. а вот текст кодитуется помоиму иначе
Post #: 37
RE: последний элемент массива - 2008-08-18 02:25:57.303333   
Roneon

Сообщений: 220
Оценки: 0
Присоединился: 2004-03-12 09:02:53
quote:

ORIGINAL: brtn

ещё один вопрос созрел: есть условный оператор:
&lt;?php
….
if(!isset($_GET['string']){
form();
exit;
}
….
?&gt;

выходит ошибка типа
Parse error: syntax error, unexpected '{'
в чём дело? =)

хз актуально ли ещё, но я пробежался по ответам глазами и не заметил правильного ответа… В общем, здесь не хватает скобки :) Имеем (!isset($_GET['string']), нужно !isset($_GET['string'])).
Post #: 38
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 "&lt;? echo chr(decbin(123)); ?&gt;" &gt; 1.php [modusso3@cp3 ~]$ php 1.php Content-type: text/html X-Powered-By: PHP/4.3.9 Ц В общем нихрена не ясно на самом деле. По поводу функций с числами для текста - лучше уж переводить текст в числа, (int)$char прекрасно работает.
Post #: 39
RE: [Deleted] - 2008-08-18 21:39:04.703333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
Roneon, со скобкой разобрались уже давно =), а про функции  перевода в различныее сс ищу  нормальный мэнуал, по другому  видимо никак =)
Post #: 40
Страниц:  [1]
Все форумы >> [Веб-программинг] >> последний элемент массива







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.