mmb 0 Denunciar post Postado Dezembro 18, 2007 Galera meu problema é o seguinte tenho a seguinte lista PHP $tudo = "keywordHandler:addKeyword({'sell', 'bronze amulet'}, tradeItem, {itemid = 2172, cost = 100}) keywordHandler:addKeyword({'sell', 'crystal necklace'}, tradeItem, {itemid = 2125, cost = 150}) keywordHandler:addKeyword({'sell', 'dragon necklace'}, tradeItem, {itemid = 2201, cost = 250}) keywordHandler:addKeyword({'sell', 'elven amulet'}, tradeItem, {itemid = 2198, cost = 500}) keywordHandler:addKeyword({'sell', 'garlic necklace'}, tradeItem, {itemid = 2199, cost = 250}) keywordHandler:addKeyword({'sell', 'golden amulet'}, tradeItem, {itemid = 2130, cost = 3500}) keywordHandler:addKeyword({'sell', 'platinum amulet'}, tradeItem, {itemid = 2171, cost = 2500}) keywordHandler:addKeyword({'sell', 'ruby necklace'}, tradeItem, {itemid = 2133, cost = 1000}) keywordHandler:addKeyword({'sell', 'protection amulet'}, tradeItem, {itemid = 2200, cost = 350}) keywordHandler:addKeyword({'sell', 'silver amulet'}, tradeItem, {itemid = 2170, cost = 50}) keywordHandler:addKeyword({'sell', 'silver necklace'}, tradeItem, {itemid = 2132, cost = 250}) keywordHandler:addKeyword({'sell', 'stone skin amulet'}, tradeItem, {itemid = 2197, cost = 1500}) keywordHandler:addKeyword({'sell', 'strange symbol'}, tradeItem, {itemid = 2319, cost = 500}) keywordHandler:addKeyword({'sell', 'strange talisman'}, tradeItem, {itemid = 2161, cost = 400}) keywordHandler:addKeyword({'sell', 'scarab amulet'}, tradeItem, {itemid = 2135, cost = 1000}) keywordHandler:addKeyword({'sell', 'axe ring'}, tradeItem, {itemid = 2208, cost = 400}) keywordHandler:addKeyword({'sell', 'club ring'}, tradeItem, {itemid = 2209, cost = 400}) keywordHandler:addKeyword({'sell', 'sword ring'}, tradeItem, {itemid = 2207, cost = 400}) keywordHandler:addKeyword({'sell', 'dwarven ring'}, tradeItem, {itemid = 2213, cost = 25}) keywordHandler:addKeyword({'sell', 'power ring'}, tradeItem, {itemid = 2166, cost = 400}) keywordHandler:addKeyword({'sell', 'time ring'}, tradeItem, {itemid = 2169, cost = 1000}) keywordHandler:addKeyword({'sell', 'wedding ring'}, tradeItem, {itemid = 2121, cost = 500}) keywordHandler:addKeyword({'sell', 'ring of healing'}, tradeItem, {itemid = 2214, cost = 2000}) keywordHandler:addKeyword({'sell', 'crystal ring'}, tradeItem, {itemid = 2124, cost = 2000}) keywordHandler:addKeyword({'sell', 'energy ring'}, tradeItem, {itemid = 2167, cost = 1000}) keywordHandler:addKeyword({'sell', 'life ring'}, tradeItem, {itemid = 2168, cost = 800}) keywordHandler:addKeyword({'sell', 'golden ring'}, tradeItem, {itemid = 2179, cost = 15000}) keywordHandler:addKeyword({'sell', 'stealth ring'}, tradeItem, {itemid = 2165, cost = 1000}) keywordHandler:addKeyword({'sell', 'might ring'}, tradeItem, {itemid = 2164, cost = 5000}) keywordHandler:addKeyword({'sell', 'ring of the skies'}, tradeItem, {itemid = 2357, cost = 30000}) keywordHandler:addKeyword({'sell', 'small amethyst'}, tradeItem, {itemid = 2150, cost = 200, stackable = true}) keywordHandler:addKeyword({'sell', 'small diamond'}, tradeItem, {itemid = 2145, cost = 300, stackable = true}) keywordHandler:addKeyword({'sell', 'small emerald'}, tradeItem, {itemid = 2149, cost = 250, stackable = true}) keywordHandler:addKeyword({'sell', 'talon'}, tradeItem, {itemid = 2151, cost = 500, stackable = true}) keywordHandler:addKeyword({'sell', 'small ruby'}, tradeItem, {itemid = 2147, cost = 250, stackable = true}) keywordHandler:addKeyword({'sell', 'small sapphire'}, tradeItem, {itemid = 2146, cost = 250, stackable = true}) keywordHandler:addKeyword({'sell', 'black pearl'}, tradeItem, {itemid = 2144, cost = 160, stackable = true}) keywordHandler:addKeyword({'sell', 'white pearl'}, tradeItem, {itemid = 2143, cost = 280, stackable = true}) keywordHandler:addKeyword({'sell', 'blue gem'}, tradeItem, {itemid = 2158, cost = 250}) keywordHandler:addKeyword({'sell', 'big ruby'}, tradeItem, {itemid = 2156, cost = 500}) keywordHandler:addKeyword({'sell', 'big emerald'}, tradeItem, {itemid = 2155, cost = 500}) keywordHandler:addKeyword({'sell', 'yellow gem'}, tradeItem, {itemid = 2154, cost = 150}) keywordHandler:addKeyword({'sell', 'violet gem'}, tradeItem, {itemid = 2153, cost = 150})"; Preciso pegar o que fica entre {'sell', 'O QUE EU QUERO'}, exemplo: keywordHandler:addKeyword({'sell', 'violet gem'}, Gostaria de obter violet gem o problema é que se fosse uma linha só eu conseguiria obter isto, mas como são várias nao sei como fazer alguem poderia mi ajudar? Abraço, mmb Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Dezembro 18, 2007 você pode usar: PHP explode();split(); ou melhor PHP preg_replace(); espero que lhe ajude , qualquer coisa espero sua resposta ;) Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Dezembro 18, 2007 Amigo, sei que você não pode dar tudo "mastigado" mas não consigo achar uma solução, tem como ser mais claro, ou apenas indicar um caminho a seguir? O explode eu axo que nao teria como, pelo preg_replace não consigo entender a parte do mixed $pattern , mixed $replacement Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Dezembro 18, 2007 campeão ae ta um exemplo para você... tambem sou meio fraco com essa função PHP <?php$Text = "keywordHandler:addKeyword({'sell', 'violet gem'},"; $Text = preg_replace("/keywordHandler:addKeyword({'sell', '(.+?)'},/is","$1", $Text); echo $Text; ?> Dica: TAGs assim dentro do PREG <,[,{ que você não quer que sejam interpretadas como parte da função mas sim como STRING faça assim \<,\[,\{ espero que lhe ajude boa sorte Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Dezembro 18, 2007 Amigo muuuito obrigado pela ajuda axo que consegui entender o preg_replace, tenho apenas uma duvida no final /is serve pra que? O (.+?) é onde ele axa o resultado que desejo neh? Fiz da seguinte forma: PHP $Text = preg_replace("/keywordHandler:addKeyword({'sell', '(.+?)'},/is","$1,", $tudo);$text1 = preg_replace("/tradeItem, {itemid = (.+?), cost = (.+?)})/is", "$1,$2;", $Text); $final = str_replace(", stackable = true", "", $text1); echo $final; E estou obtendo o seguinte resultado(pequena amostra) bronze amulet, 2172,100; crystal necklace, 2125,150; dragon necklace, 2201,250; Exatamente como eu gostaria, mas também queria saber como remover os espaços entre "amulet, 2172" e "; crystal" tentei fazer por str_replace("; ", ";", $variavel) e não funcionou... Mas muito obrigado vlw cara :D Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Dezembro 18, 2007 str_replace("; ", ";", $variavel) mas assim você esta substituindo PONTO E VIRGULA por PONTO E VIRGULA não é verdade? para remover os espaços é simples(se for entre a virgula) PHP str_replace(", ",",",$variavel); ;) Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Dezembro 18, 2007 só uma observação em relação a remover espaços: No exemplo que você citou, silverfox, ele removeria apenas se tivesse um espaço, se tivesse mais que um, daria problema. Com preg_replace fica mais fácil PHP $str = preg_replace('@,s+@', ',', $str); Só um exemplo ;) @braços e fiquem com Deus! Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Dezembro 18, 2007 só uma observação em relação a remover espaços: No exemplo que você citou, silverfox, ele removeria apenas se tivesse um espaço, se tivesse mais que um, daria problema. Com preg_replace fica mais fácil PHP $str = preg_replace('@,s+@', ',', $str); Só um exemplo ;) @braços e fiquem com Deus! opa otima dica, te a mim ajudou http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif eu tinha colocado daquele jeito por que esse "código" dele tem um padrão mas sua dica ja deixou tudo melhor =) Compartilhar este post Link para o post Compartilhar em outros sites