PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
BesTime
Отправлено: 06 Июля, 2013 - 19:50:24
Гость
Покинул форум
Сообщений всего: 82
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
[+]
Почему когда вбиваю айди 117 ищит сначало 1 потом еще 1 а потом только 7 а не сразу 117?
PHP:
скопировать код в буфер обмена
<?PHP
function char_class( $str )
{
'0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' , '13' , '14' , '15' , '16' , '17' , '18' , '19' , '20' , '21' ,
'22' , '23' , '24' , '25' , '26' , '27' , '28' , '29' , '30' , '31' , '32' , '33' , '34' , '35' , '36' , '37' , '38' , '39' , '40' , '41' , '42' , '43' , '44' ,
'45' , '46' , '47' , '48' , '49' , '50' , '51' , '52' , '53' , '54' , '55' , '56' , '57' , '88' , '89' ,
'90' , '91' , '92' , '93' , '94' , '95' , '96' , '97' , '98' , '99' , '100' , '101' , '102' , '103' , '104' , '105' , '106' , '107' , '108' , '109' , '110' , '111' ,
'112' , '113' , '114' , '115' , '116' , '117' , '118'
) ;
"Fighter" , "Warrior" , "Gladiator" , "Warlord" , "Knight" , "Paladin" , "Dark avenger" , "Rogue" , "Treasure hunter" , "Hawkeye" , "Mage" , "Wizard" , "Sorcerer" ,
"Necromancer" , "Warlock" , "Cleric" , "Bishop" , "Prophet" , "Elven fighter" , "Elven knight" , "Temple knight" , "Swordsinger" , "Elven scout" , "Plains walker" ,
"Silver ranger" , "Elven mage" , "Elven wizard" , "Spellsinger" , "Elemental summoner " , "Oracle" , "Elder" , "Dark fighter" , "Palus knight" , "Shillien knight" ,
"Blad edancer" , "Assasin" , "Abyss walker" , "Phantom ranger" , "Dark mage" , "Dark wizard" , "Spellhowler" , "Phantom summoner" , "Shil lien oracle" , "Shilien elder" ,
"Orc fighter" , "Orc raider" , "Destroyer" , "Orc monk" , "Tyrant" , "Orc mage" , "Orc shaman" , "Overlord" , "Warcryer" , "Dwarven fighter" , "Scavenger" , "Bounty hunter" ,
"Artisan" , "Warsmith" , "Duelist" , "Dreadnought" , "PhoenixKnight" , "HellKnight" , "Sagittarius" , "Adventurer" , "Archmage" , "Soultaker" , "ArcanaLord" ,
"Cardinal" , "Hierophant" , "EvaTemplar" , "SwordMuse" , "WindRider" , "MoonlightSentinel" , "MysticMuse" , "ElementalMaster" , "EvaSaint" , "ShillienTemplar" ,
"SpectralDancer" , "GhostHunter" , "GhostSentinel" , "StormScreamer" , "SpectralMasterr" , "ShillienSaint" , "Titan" , "GrandKhauatari" , "Dominator" , "Doomcryer" ,
"FortuneSeeker" , "Maestro"
) ;
return $str ;
}
$class_id = "117" ;
print char_class( "$class_id " ) ;
?>
print char_class("$class_id"); выдает WarriorWarriorRogue
AlexAnder
Отправлено: 06 Июля, 2013 - 20:00:02
Частый посетитель
Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012
Откуда: Россия
Помог: 34 раз(а)
Цитата: Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash
(Добавление)
Цитата: Проблема с str_replace()
Цитата: $str =preg_replace ($str_search_id, $str_replace, $str);
-----Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©
Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
Мелкий
Отправлено: 06 Июля, 2013 - 20:10:25
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009
Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Потому что в строке "117" встречаются строки "1" и "7".
Используйте какие-либо более явные ограничители.
Если функция должна вернуть одно имя за вызов, то она берёт на себя слишком многое:
PHP:
скопировать код в буфер обмена
function getClassNameById( $iClassId ) {
assert ( 'is_numeric($iClassId)' ) ; $iClassId = intval ( $iClassId ) ; 0 => 'Fighter' ,
1 => 'Warrior' ,
2 => 'Gladiator' ,
3 => 'Warlord' ,
4 => 'Knight' ,
5 => 'Paladin' ,
6 => 'Dark avenger' ,
7 => 'Rogue' ,
8 => 'Treasure hunter' ,
9 => 'Hawkeye' ,
10 => 'Mage' ,
11 => 'Wizard' ,
12 => 'Sorcerer' ,
13 => 'Necromancer' ,
14 => 'Warlock' ,
15 => 'Cleric' ,
16 => 'Bishop' ,
17 => 'Prophet' ,
18 => 'Elven fighter' ,
19 => 'Elven knight' ,
20 => 'Temple knight' ,
21 => 'Swordsinger' ,
22 => 'Elven scout' ,
23 => 'Plains walker' ,
24 => 'Silver ranger' ,
25 => 'Elven mage' ,
26 => 'Elven wizard' ,
27 => 'Spellsinger' ,
28 => 'Elemental summoner ' ,
29 => 'Oracle' ,
30 => 'Elder' ,
31 => 'Dark fighter' ,
32 => 'Palus knight' ,
33 => 'Shillien knight' ,
34 => 'Blad edancer' ,
35 => 'Assasin' ,
36 => 'Abyss walker' ,
37 => 'Phantom ranger' ,
38 => 'Dark mage' ,
39 => 'Dark wizard' ,
40 => 'Spellhowler' ,
41 => 'Phantom summoner' ,
42 => 'Shil lien oracle' ,
43 => 'Shilien elder' ,
44 => 'Orc fighter' ,
45 => 'Orc raider' ,
46 => 'Destroyer' ,
47 => 'Orc monk' ,
48 => 'Tyrant' ,
49 => 'Orc mage' ,
50 => 'Orc shaman' ,
51 => 'Overlord' ,
52 => 'Warcryer' ,
53 => 'Dwarven fighter' ,
54 => 'Scavenger' ,
55 => 'Bounty hunter' ,
56 => 'Artisan' ,
57 => 'Warsmith' ,
88 => 'Duelist' ,
89 => 'Dreadnought' ,
90 => 'PhoenixKnight' ,
91 => 'HellKnight' ,
92 => 'Sagittarius' ,
93 => 'Adventurer' ,
94 => 'Archmage' ,
95 => 'Soultaker' ,
96 => 'ArcanaLord' ,
97 => 'Cardinal' ,
98 => 'Hierophant' ,
99 => 'EvaTemplar' ,
100 => 'SwordMuse' ,
101 => 'WindRider' ,
102 => 'MoonlightSentinel' ,
103 => 'MysticMuse' ,
104 => 'ElementalMaster' ,
105 => 'EvaSaint' ,
106 => 'ShillienTemplar' ,
107 => 'SpectralDancer' ,
108 => 'GhostHunter' ,
109 => 'GhostSentinel' ,
110 => 'StormScreamer' ,
111 => 'SpectralMasterr' ,
112 => 'ShillienSaint' ,
113 => 'Titan' ,
114 => 'GrandKhauatari' ,
115 => 'Dominator' ,
116 => 'Doomcryer' ,
117 => 'FortuneSeeker' ,
118 => 'Maestro' ,
) ;
return isset ( $rgClasses [ $iClassId ] ) ?
$rgClasses [ $iClassId ] : $iClassId ; }
Если функция должна заменить в неком тексте id классов на их названия - сперва сделайте какие-нибудь более явные метки, чем простое число.
Потом через preg_replace_callback вызывайте функцию-замену, вроде той, что я привёл выше.
BesTime
Отправлено: 06 Июля, 2013 - 21:43:14
Гость
Покинул форум
Сообщений всего: 82
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
[+]
AlexAnder пишет: Цитата: Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash
(Добавление)
Цитата: Проблема с str_replace()
Цитата: $str =preg_replace ($str_search_id, $str_replace, $str);
preg_replace пробывал вообще почему то нечто не выводит
BesTime
Отправлено: 06 Июля, 2013 - 23:16:25
Гость
Покинул форум
Сообщений всего: 82
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
[+]
Мелкий пишет: Потому что в строке "117" встречаются строки "1" и "7".
Используйте какие-либо более явные ограничители.
Если функция должна вернуть одно имя за вызов, то она берёт на себя слишком многое:
PHP:
скопировать код в буфер обмена
function getClassNameById( $iClassId ) {
assert ( 'is_numeric($iClassId)' ) ; $iClassId = intval ( $iClassId ) ; 0 => 'Fighter' ,
1 => 'Warrior' ,
2 => 'Gladiator' ,
3 => 'Warlord' ,
4 => 'Knight' ,
5 => 'Paladin' ,
6 => 'Dark avenger' ,
7 => 'Rogue' ,
8 => 'Treasure hunter' ,
9 => 'Hawkeye' ,
10 => 'Mage' ,
11 => 'Wizard' ,
12 => 'Sorcerer' ,
13 => 'Necromancer' ,
14 => 'Warlock' ,
15 => 'Cleric' ,
16 => 'Bishop' ,
17 => 'Prophet' ,
18 => 'Elven fighter' ,
19 => 'Elven knight' ,
20 => 'Temple knight' ,
21 => 'Swordsinger' ,
22 => 'Elven scout' ,
23 => 'Plains walker' ,
24 => 'Silver ranger' ,
25 => 'Elven mage' ,
26 => 'Elven wizard' ,
27 => 'Spellsinger' ,
28 => 'Elemental summoner ' ,
29 => 'Oracle' ,
30 => 'Elder' ,
31 => 'Dark fighter' ,
32 => 'Palus knight' ,
33 => 'Shillien knight' ,
34 => 'Blad edancer' ,
35 => 'Assasin' ,
36 => 'Abyss walker' ,
37 => 'Phantom ranger' ,
38 => 'Dark mage' ,
39 => 'Dark wizard' ,
40 => 'Spellhowler' ,
41 => 'Phantom summoner' ,
42 => 'Shil lien oracle' ,
43 => 'Shilien elder' ,
44 => 'Orc fighter' ,
45 => 'Orc raider' ,
46 => 'Destroyer' ,
47 => 'Orc monk' ,
48 => 'Tyrant' ,
49 => 'Orc mage' ,
50 => 'Orc shaman' ,
51 => 'Overlord' ,
52 => 'Warcryer' ,
53 => 'Dwarven fighter' ,
54 => 'Scavenger' ,
55 => 'Bounty hunter' ,
56 => 'Artisan' ,
57 => 'Warsmith' ,
88 => 'Duelist' ,
89 => 'Dreadnought' ,
90 => 'PhoenixKnight' ,
91 => 'HellKnight' ,
92 => 'Sagittarius' ,
93 => 'Adventurer' ,
94 => 'Archmage' ,
95 => 'Soultaker' ,
96 => 'ArcanaLord' ,
97 => 'Cardinal' ,
98 => 'Hierophant' ,
99 => 'EvaTemplar' ,
100 => 'SwordMuse' ,
101 => 'WindRider' ,
102 => 'MoonlightSentinel' ,
103 => 'MysticMuse' ,
104 => 'ElementalMaster' ,
105 => 'EvaSaint' ,
106 => 'ShillienTemplar' ,
107 => 'SpectralDancer' ,
108 => 'GhostHunter' ,
109 => 'GhostSentinel' ,
110 => 'StormScreamer' ,
111 => 'SpectralMasterr' ,
112 => 'ShillienSaint' ,
113 => 'Titan' ,
114 => 'GrandKhauatari' ,
115 => 'Dominator' ,
116 => 'Doomcryer' ,
117 => 'FortuneSeeker' ,
118 => 'Maestro' ,
) ;
return isset ( $rgClasses [ $iClassId ] ) ?
$rgClasses [ $iClassId ] : $iClassId ; }
Если функция должна заменить в неком тексте id классов на их названия - сперва сделайте какие-нибудь более явные метки, чем простое число.
Потом через preg_replace_callback вызывайте функцию-замену, вроде той, что я привёл выше.
спасибо то что нужно
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB