2011-01-18 9 views
-1

いくつかのHTML/PHPコンテンツを抽出して配列に入れる必要があります。ここでHTML/PHPコンテンツを取得して置き換えるためのpreg_replaceとpreg_match

は私が

次のコードは、例えば$文字列と呼ばれる文字列の中で持っているものです。

<html> 
<?php myclass->my_function('First', 'Last'); ?> 
<p>Some other content</p> 
<?php myclass->my_function(1, 2, 3); ?> 
</html> 

私は、関数からのすべての値を見つけるとするpreg_matchの配列にそれらを合計します。 myclass-> my_function関数の値だけが見つかるはずです。

<html> 
[explode_1] 
<p>Some other content</p> 
[explode_2] 
</html> 

ありがとう:

配列は、その後、私はすべての行[explode_id]と、結果がでなければなりませんを置き換えるためにpreg_replaceをしたい、この

$array = array(
    1 => array('First', 'Last'), 
    2 => array(1,2,3), 
); 

のようになります!

+0

ehhh、このコードはどこから来たのですか?なぜmyclass-> myfunction()メソッドでそれを表示させるだけではないのですか? – dqhendricks

+1

[HTMLとPHPをpreg_replaceで修正する]の複製が可能です。(http://stackoverflow.com/questions/4724564/modify-html-and-php-with-preg-replace) – ircmaxell

+2

質問を投稿しないでくださいあなたが好きな答えは得られません。代わりに、質問を編集してより多くの情報を追加したり、探しているものを明確にしたりする...投票を閉じる... – ircmaxell

答えて

1
$str = '<html> 
<?php myclass->my_function(\'styles\', \'home.css\'); ?> 
<p>Some other content</p> 
<?php myclass->my_function(1, 2, 3); ?> 
</html>'; 

function jens($matches) 
{ 
    $path = ''; 
    $parts = explode(',', $matches[1]); 
    foreach($parts as $match) 
     $path .= '/' . str_replace('\'', '', trim($match)); 

    return $path; 
} 

$replaced = preg_replace_callback('/<\?php myclass->my_function\((.*?)\); \?>/', 'jens', $str); 

echo $replaced; 

あなたが欲しいものを行う必要があります。

0
$match_array = preg_match('/<\?php myclass->my_function\((.+?)\); \?>/', $input_string, $matches); 
$output_arrays = array(); 
$output_arrays[] = eval('array('.$matches[0][1].')'; 
$output_arrays[] = eval('array('.$matches[1][1].')'; 

echo '<html>'; 
echo implode(' ', $output_arrays[0]); 
echo '<p>Some other content</p>'; 
echo implode(' ', $output_arrays[1]); 
echo '</html>'; 
+0

ここでちょうど推測します。あなたの質問には意味がありません。 – dqhendricks

+0

あなたは正しい方法だと思います。 –

関連する問題