2011-12-29 21 views
0

私はPHPには新しく、ここでは単純なスクリプトを書いています。私が最終的にやろうとしているのは、文字列の内容を調べて、私が$definitions配列に列挙したすべての出現位置を見つけて、それらの位置を別の配列にマップして返します。 私はprint_r配列のコードの異なる部分では、スコープの問題を考えて、私は配列のキー値がNULLであり続けていると私はしようとするときに配列の値にアクセスする与えられた鍵には確かに存在しますが、私にも何も得られません。どんな助けもありがたいです...PHP配列のキーがNULLの場合、配列が空に見えます

ありがとう!

<?php 

class html2DokuWiki { 
    function definition_map($content){ 

     $definitions = array("<title" => " ","<h" => array("=", 6),"<p" => "\n\n","<b" => "**","<strong" => "**","<em" => "//","<u" => "__","<img" => " ","<a" => " ","<ul" => " ","<ol" => "*","<li" => "-","<dl" => " ","<dt" => " ","<dd" => " "); 

     $element_pos = array(); 
     foreach($definitions as $html_element){ 
      $offset = 0; 
      $counter = 0; 
      $element_pos[(string)$html_element] = array(); //ask phil why do i need to cast in order to use the object? 
      while($offset = strpos($content, $html_element, $offset + 1)){ 
       $element_pos[(string)$html_element][] = $offset; 
      }; 
     }; 
     //print_r($element_pos); 
     echo $element_pos["<p"][0]; 
     return $element_pos;} 

    function run($page){ 
     return $this->definition_map($page);} 
}; 

$debug = new html2DokuWiki(); 
$url = "http://www.unixwiz.net/techtips/sql-injection.html"; 
$content = file_get_contents($url); 
//echo $content; 
//print_r($debug->run($content)); 
$test = $debug->run($content); 
echo "<p> THIS:".$test["<p"][0]."</p>"; 
//print_r($test); 

?> 
+0

私は博士フィルはPHPの第一人者だったことを知りませんでしたか? – Cyclonecode

+0

$ element_pos [(文字列)$ html_element] ????無効である??? –

+0

Dr.フィル何ですか?笑 – mayotic

答えて

1

それはあなたがあなたが何をすべき指標として$html_elementとして使用するキーだ場合:

foreach($definitions as $html_element => $value){ 
+0

ように私はそれだけで配列の値にアクセスしているのですか? – mayotic

+0

@NetSkay - Jupp、そうだよ。 – Cyclonecode

関連する問題