2012-03-26 9 views
0

私はPHPを初めて使っています - 私はPHPクラスで未定義のオフセットを取得し続けています。PHPクラスの定義されていないオフセット - ウィキペディア

誰でも助けてください - 私のコードは以下のとおりです。現在のエラーは28行目ですが、さらに多くのエラーが存在する可能性があります。

表示されるエラーは次のとおりです。

お知らせ:不定オフセット: Cで0:\ XAMPP \ htdocsに\個人用サイト\ wikipedia.class.phpライン上の28

このクラスは私を可能にしますウィキペディアのコンテンツを解析し、phpで表示する - 未定義のオフセットが何であるかのアイデア。

<?PHP 
class wikipedia 
{ 
public function __construct($wiki) 
    { 
    $this->wiki = $wiki; 
    } 
public function __destruct() 
    { 
    unset($this->wiki); 
    } 
public function get_page($name, $header = false) 
    { 
    $file = file_get_contents($this->wiki.'/wiki/'.$name); 
    $file = str_replace('href="/', 'href="'.$this->wiki.'/', $file); 
    //$file = str_replace('href="#', 'href="'.$this->wiki.'/wiki/'.$name.'#',  $file); 
    preg_match_all('#<!-- start content -->(.*?)<!-- end content -->#es', $file, $ar); 
    unset($file); 
    IF(is_array($ar[1])) 
     { 
     IF($header == false) 
      { 
      return $ar[1][0]; 
      } 
     else 
      { 
      return '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl" dir="ltr"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <link rel="stylesheet" type="text/css" href="'.$this->wiki.'/skins-1.5/monobook/main.css" /></head><body>'.$ar[1][0]; 
      } 
     } 
    else 
     { 
     return false; 
     } 
    } 
public function edit_page($name, $header = false) 
    { 
    $file = file_get_contents($this->wiki.'/w/index.php? title='.$name.'&action=edit'); 
    preg_match_all('#<textarea (.*?)ols=\'80\' >(.*?)</textarea>#es', $file, $ar); 
    unset($file); 
    IF(is_array($ar[2])) 
     { 
     ob_start(); 
     IF($header != false) 
      { 
      echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl" dir="ltr"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <link rel="stylesheet" type="text/css" href="'.$this- >wiki.'/skins-1.5/monobook/main.css" /></head><body>'; 
      } 

     $xname = 'wpTextbox1'; 
     echo '<Form action="'.$this->wiki.'/w/index.php? title='.$name.'&amp;action=submit" METHOD="POST" enctype="multipart/form-data" name="rk" id="editform"><center> 
     <script language="JavaScript"> 
      function emoticon('.$xname.') { 
      '.$xname.' = \'\' + '.$xname.' + \'\'; 
      if (document.rk.'.$xname.'.create'.$xname.'Range && document.rk.'.$xname.'.caretPos) { 
      var caretPos = document.rk.'.$xname.'.caretPos; 
      caretPos.'.$xname.' = caretPos.'.$xname.'.charAt(caretPos.'.$xname.'.length - 1) == \' \' ? '.$xname.' + \' \' : '.$xname.'; 
      document.rk.'.$xname.'.focus(); 
      } else { 
      document.rk.'.$xname.'.value += '.$xname.'; 
      document.rk.'.$xname.'.focus(); 
      } 
      } 
      </script>'; 

      echo '<center><textarea cols="75" rows="30" name="'.$xname.'">'.$ar[2][0].'</textarea><BR> 
      <input type="button" value="Link to a wiki page" onClick="javascript:emoticon(\'[[wiki_page]]\')"> 
      <input type="button" value="Link" onClick="javascript:emoticon(\'[http://your_url.pl Page Title]\')"> 
      <input type="button" value="Graphic" onClick="javascript:emoticon(\'[[Grafika:filename]]\')"> 
      <input type="button" value="H1 - Big Title" onClick="javascript:emoticon(\'= Title =\')"> 
      <input type="button" value="H2 - Medium Title" onClick="javascript:emoticon(\'== Title ==\')"> 
      <input type="button" value="H3 - Small Title" onClick="javascript:emoticon(\'=== Title ===\')"> 
      <input type="button" value="LI - lists" onClick="javascript:emoticon(\'* Text here\')"> 
      <input type="button" value="LI - numeric lists" onClick="javascript:emoticon(\'# Text here\')"> 
      <input type="button" value="Definition" onClick="javascript:emoticon(\'; Definition name : Description\')"> 
      <input type="button" value="HR - line" onClick="javascript:emoticon(\'----\')"><BR><BR>'; 

     echo '<BR><input tabindex=\'5\' id=\'wpSave\' type=\'submit\' value="Save" name="wpSave" accesskey="s"> 
     <input tabindex=\'6\' id=\'wpPreview\' type=\'submit\' value="Preview" name="wpPreview" accesskey="p"> 
     <input tabindex=\'7\' id=\'wpDiff\' type=\'submit\' value="Preview Changes" name="wpDiff" accesskey="v"></center></form>'; 
     $wynik = ob_get_contents(); 
     ob_end_clean(); 
     return $wynik; 
     } 
    else 
     { 
     return false; 
     } 
    } 
    } 
?> 
+0

エラー –

+0

お知らせ貼り付けてください:Cで0:オフセット不定を\ xamppの\ htdocsに\個人用サイト\ wikipedia.class.phpライン上の28 – Dom

答えて

1

たぶん、あなたは、いくつかの正規表現を行うにして$arで試合を置くためにpreg_match_all()を使用している

IF(is_array($ar[1]) && isset($ar[1][0])) 
+1

'のISSET()'最初 – Vytautas

+0

する必要があります誰もが私が持っているコードを修正することができます上記のボックスに配置されています - 何がチャネグドであるべきかを正確には分からないので、多くの異なる答えがあります。 – Dom

+0

最終的に誰もが同じ結論を出しています。配列要素$ ar [1] [0]は存在しません。 –

0

IF(is_array($ar[1])) 

を変更。

var_dump($ar)を実行して、アレイの外観を確認してください。おそらく、一致するものはなかったので、要素$ar[1][0]は空です。

配列要素が空の場合は、isset()で最初にチェックしてから操作してください。

+0

上記のボックスに入れたコードを誰でも修正できますか?多くの異なる答えがあるので、何がチャネグドであるべきかを確かめてください。 – Dom

+0

最終的に誰もが同じ結論を出しています。配列要素$ ar [1] [0]は存在しません –

0

私の最初の推測では、このように配列が空であり、インデックス0は、あなたが見つからない場合は、この

0
のための機能 isset()を使用するのチェックを追加し、ブール偽を返す可能性がありません、一致が見つからなかったということでしょう

Regexは一致するものを返していないので、存在しない配列要素を返そうとしています。

関連する問題