2011-12-29 2 views
0

Я довольно новичок в PHP, и я как бы застрял здесь писать этот простой скрипт; то, что я пытаюсь в конечном счете сделать, это пройти содержимое строки и найти позиции всех явлений, перечисленных в моем массиве $definitions, затем сопоставить эти позиции в отдельном массиве и вернуть его ... довольно простой, но я не знаю, где возникает проблема, когда i print_r в массиве в разных частях кода, думая о проблеме с областью, я все время вижу, что значение ключа для массива равно NULL, а также когда я пытаюсь получить доступ к значению массива I я уверен, что существует для данного ключа, я тоже ничего не получаю; любая помощь была бы оценена ...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] ???? нулевой??? –

+0

Доктор Фил что? lol – mayotic

ответ

1

Если это ключ, который вы хотите использовать в качестве $html_element в качестве индекса вы должны сделать:

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

так что путь У меня есть я просто получаю доступ к значению массива? – mayotic

+0

@NetSkay - Jupp, это правильно. – Cyclonecode

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