Как разбить строку на меньшую часть строки

1

У меня есть такая переменная:

$str = 'loremipsum Gol A WB=10 PRC=7|Gol O TC=8 PRC=12|Gol B WB=170 PRC=17|Gol AB WB=0 TC=1 url';

Я хочу разделить Gol A WB=10, Gol A PRC=7, Gol O TC=8 и т.д. Как независимую строку, поэтому я могу обработать другую функцию для строки. Любая помощь будет оценена по достоинству.

ОБНОВЛЕНИЕ перед тем, спасибо за ответы, но я сожалею, что ваши ответы - не тот ответ, который мне нужен. До сих пор я получил это

$string_array = array("abc string 1 abc","abc string 2 abc" ,"abc string 3 abc");

foreach($string_array as $string){

echo getBetween($string,"abc","abc") . "<br>";

}

и моя проблема в том, что у меня нет такого же слова, чтобы избавиться, но разные слова, поэтому код, который мне нужен, я считаю, не будет

echo getBetween($string,**"abc","abc"**) . "<br>";

Пожалуйста, помогите мне с этим.

  • 0
    Посмотрите, работает ли мое редактирование. Ваш первоначальный вопрос был не очень ясным и не отражал то, что вы действительно хотели сделать.
Теги:
string

3 ответа

1
$str = 'loremipsum Gol A WB=10 PRC=7|Gol O TC=8 PRC=12|Gol B WB=170 PRC=17|Gol AB WB=0 TC=1 url';
preg_match_all('/Gol(.*?)[0-9]/',$str,$matches);
foreach($matches[0] as $match) {
    echo "<li>{$match}</li>";
}
  • 0
    спасибо, я попробую это :)
1

Я точно не знаю, что вы имеете в виду, но, возможно, один из них?:

<?php
$str = 'loremipsum Gol A WB=10 PRC=7|Gol O TC=8 PRC=12|Gol B WB=170 PRC=17|Gol AB WB=0 TC=1 url';
preg_match_all('/(Gol [A-Z]{1,2} [A-Z\=0-9]{1,})/',$str,$matched);

print_r($matched[1]);
print_r(preg_replace('/'.implode("|",$matched[1]).'/',"",$str));
print_r(implode("|",$matched[1]));
?>

Дает тебе:

Array
(
    [0] => Gol A WB=10
    [1] => Gol O TC=8
    [2] => Gol B WB=170
    [3] => Gol AB WB=0
)

loremipsum  PRC=7| PRC=12| PRC=17| TC=1 url

Gol A WB=10|Gol O TC=8|Gol B WB=170|Gol AB WB=0

Изменить: ваш первоначальный запрос был не очень ясным, но вам может понадобиться нечто вроде завернутого preg_match().

function extract_val($str,$reg1="",$reg2="")
    {
        preg_match('/^'.$reg1.'(.*)'.$reg2.'$/', $str,$matched);
        return (isset($matched[1]))? $matched[1]:false;
    }
  • 0
    спасибо это здорово :)
0

пытаться:

$str = 'loremipsum Gol A WB=10 PRC=7|Gol O TC=8 PRC=12|Gol B WB=170 PRC=17|Gol AB WB=0 TC=1 url';
$chunks=explode('|', $str); //Split your string by |
foreach($chunks as $chunk){ //iterate through chunks
echo $chunk;
//process here using chunk...
}
  • 0
    спасибо, я попробую это :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню