2011-12-29 2 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 [(string) $ html_element] ??? null입니까? –

+0

닥터 필 뭐야? lol – mayotic

답변

1

당신이 당신이해야 인덱스로 $html_element으로 사용할 키의 경우

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

그래서 방법 나는 배열의 가치에 접근하고 있는가? – mayotic

+0

@ NetSkay - Jupp, 맞습니다. – Cyclonecode

관련 문제