Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Строки. (https://forum.zone-game.info/showthread.php?t=16514)

Extez1 28.10.2011 22:02

Строки.
 
Есть txt фаил содержащий текст:
Код:

501#
A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.
^ffffff_^000000
Weight :^777777 7^000000
#
502#
A potion made from ground Red and Yellow Herbs that restores ^000088about 105 HP^000000.
^ffffff_^000000
Weight :^777777 10^000000
#

Реально ли закинуть в ассоциативный массив так, что бы цифра была ключём, а всё что в нутри ## было значением?

пример:
echo $massive['501'].""; выводило
Код:

A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.
^ffffff_^000000
Weight :^777777 7^000000

или подкиньте идею как по другому сделать.

Добавлено через 33 минуты
Найти строку не трудно, а вот выдернуть всё, что в нутри ## в голову не приходит.

PROGRAMMATOR 28.10.2011 22:42

Re: Строки.
 
Как пример.

PHP код:

    $string '
        501#
        A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.
        ^ffffff_^000000
        Weight :^777777 7^000000
        #
        502#
        A potion made from ground Red and Yellow Herbs that restores ^000088about 105 HP^000000.
        ^ffffff_^000000
        Weight :^777777 10^000000
        #
    '
;
    
    
$lines explode(PHP_EOL$string);
    
$lines array_map('trim'$lines);
    
    
$item null;
    
$desc null;
    
$items = array();
    
    foreach (
$lines as $line) {
        if (
preg_match('#(^[\d]+)\##'$line$match)) {
            
$item $match[1];
            continue;
        }
        
        if (
preg_match('#^\##'$line)) {
            
$items[$item] = $desc;
            
$desc null;
            continue;
        }
        
        
$desc .= $line;
    }
    
    
var_dump($items); 

Код:

array
  501 => string 'A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.^ffffff_^000000Weight :^777777 7^000000' (length=115)
  502 => string 'A potion made from ground Red and Yellow Herbs that restores ^000088about 105 HP^000000.^ffffff_^000000Weight :^777777 10^000000' (length=128)


Extez1 28.10.2011 23:03

Re: Строки.
 
буду разбирать сейчас) Большое спасибо.

Добавлено через 37 минут
Я понял до "[/d]+)\##", может кто расшифровать это кусок?
Код:

Полная версия
#(^[\d]+)\##


PROGRAMMATOR 29.10.2011 00:02

Re: Строки.
 
Строка начинается на целое с окончанием # > 999#

Extez1 29.10.2011 16:49

Re: Строки.
 
Завязал с поиском приключений на попу.
Сделал по старинки через массивы, я не пойму 1го почему не сохраняются изменения... когда алертом проверяю внутри цикла, значение присваивается. Когда вывожу остается прежним.
Код:

        if(ai==0){
                str_title.innerHTML='Я ЗДЕСЬ БЫЛ 0';
                for(var i = 0; i < str2_text.length; i++){
                    for(var j = 0; j < str2_text.length-1; j++){
                        if(str2_text[j] > str2_text[j+1]){
                        zapas = str2_text[j];
                        str2_text[j] = str2_text[j+1];
                        str2_text[j+1] = zapas;
                        }
                    }
            }
            str2_final.innerHTML=''+str2_text
        }



Текущее время: 11:01. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot