2012-07-08 201 views
0

我有這個字符串的,但我需要刪除特定的東西出來吧......PHP - 剝開一個特定的字符串一個字符串

原始字符串:hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64

我需要的字符串:sh-290-92.ch-215-84.lg-280-64。我需要刪除hr-165-34. and hd-180-1。 !

編輯:啊,我打了一個障礙!

字符串總是變化,所以我需要刪除的位像「hr-165-34」。總是改變,它永遠是「人 - 某事 - 某事」。

所以我使用的方法不會工作!

感謝

回答

0

這樣做的最簡單快捷的方法是使用str_replace

$ostr = "hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64"; 
$nstr = str_replace("hr-165-34.","",$ostr); 
$nstr = str_replace("hd-180-1.","",$nstr); 
2
$str = 'hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64'; 
$new_str = str_replace(array('hr-165-34.', 'hd-180-1.'), '', $str); 

信息上str_replace

3

取決於你爲什麼要刪除這些人恰恰是Substrigs ...

  • 如果你總是想刪除這些人恰恰是子,你可以使用str_replace
  • 如果你總是想刪除的字符同樣的位置,你可以使用substr
  • 如果你總是想刪除兩個點之間的子串,符合特定條件的,可以使用preg_replace
+0

你能否提供一個str_replace的例子,我有點用它卡住 – x06265616e 2012-07-08 11:20:29

+0

正如你可以在其他答案中看到的,你只需要用一個空字符串替換你想刪除的子字符串。 str_replace的第一個參數是要替換的字符串數組,第二個參數是要用作替換的字符串。其實這兩個參數可以是字符串或數組... – Misch 2012-07-08 11:28:40

+0

我打了一個障礙,請參閱編輯後! – x06265616e 2012-07-08 12:16:14

0
<?php  
$string = 'hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64'; 

// define all strings to delete is easier by using an array 
$delete_substrings = array('hr-165-34.', 'hd-180-1.'); 
$string = str_replace($delete_substrings, '', $string); 


assert('$string == "sh-290-92.ch-215-84.lg-280-64" /* Expected result: string = "sh-290-92.ch-215-84.lg-280-64" */'); 
?> 
0

我想通了!

$figure = $q['figure']; // hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64 

$s = $figure; 
$matches = array(); 
$t = preg_match('/hr(.*?)\./s', $s, $matches); 

$s = $figure; 
$matches2 = array(); 
$t = preg_match('/hd(.*?)\./s', $s, $matches2); 

$s = $figure; 
$matches3 = array(); 
$t = preg_match('/ea(.*?)\./s', $s, $matches3); 

$str = $figure; 
$new_str = str_replace(array($matches[0], $matches2[0], $matches3[0]), '', $str); 
echo($new_str); 

謝謝你們!

相關問題