2013-11-09 1 views
1

У меня есть функция str_replace, чтобы отделить определенное значение после этого, я хочу снова получить значение на нем.Как получить значение после использования str_replace один раз?

Пример:

function getPID($conf,$fdata){ 
global $text; 
$pid = $fdata[offer]; 
$pid = str_replace(array('p='),"\t",$pid); 
$pid = str_replace(array('&sid'),"\t",$pid); 
$pid = str_replace(array(" "),"\n",$pid); 
return $pid; 
} 

Я использую этот str_replace отделить

к = Apple + iPhone + 5c + 32GB & м = Digital + Rev & р = 567d02921b38c979f8cd43c7109bc177 & ИСС =% 23% 23permalink% 23% 23 & referrer =

Результат после с помощью str_replace и вызовите ПИД следующий:

Apple + iPhone + 5с + 32GB & м = Цифровой + Rev & 567d02921b38c979f8cd43c7109bc177 =% 23% 23permalink% 23% 23 & реферер =

Тем не менее, я хочу получить значение как 567d02921b38c979f8cd43c7109bc177 только не включать выше строки и нижней строки.

Как это получить? Можно ли получить эту ценность?

+0

просто в десериализации и получить значение р –

+0

@ E2B: Я не думаю, что ' unserialize() 'поможет. Это [строка запроса] (http://stackoverflow.com/a/19874996/1438393) :) –

+0

Да, вы правы, я должен смотреть дважды .. –

ответ

2

Это строка запроса, так что вы можете просто использовать parse_str() разобрать его:

$str = '...'; 
parse_str($str, $params); 
echo $params['p']; // => 567d02921b38c979f8cd43c7109bc177 

Demo.

+0

Спасибо за ваше предложение. Однако значение не только 567d02921b38c979f8cd43c7109bc177, поскольку $ fdata [offer]; это функция, которая включает данные в несколько строк. Я пытаюсь проверить с вашим кодом, как: функции GETPID ($ конф, $ FData) { \t глобального $ текста; \t $ str = $ fdata [offer]; \t parse_str ($ str, $ params); \t echo $ params ['p']; } и вызвать значение pid в html-шаблоне и дать пустое значение. – user2971638

+0

@ user2971638: Вы не возвращаете выход. Измените свою функцию на [this] (https://eval.in/64641). –

+0

Теперь я использую вашу функцию в файле php. Однако после того, как я вызвал ## pid ##, ничего не отображалось как пустое значение ( – user2971638

Смежные вопросы