Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mmb

Como pegar parte de uma string

Recommended Posts

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.