Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wprowadzanie zmiennej do tablicy
Wolfie
post 25.10.2009, 22:01:24
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam smile.gif


Mam taki kawalek kodu :

  1. if($info['content-type'] == 'text/html') {
  2. $sec = mailparse_msg_get_part($mime, $st);
  3. mailparse_msg_extract_whole_part_file($sec, $dir.$filename);
  4. $contents = ob_get_contents();
  5. echo nl2br(htmlentities($contents));
  6. }
  7. if($info['headers']['subject'] !== null && $info['headers']['date'] !== null) {
  8. $part[] = array(
  9. 'subjects' => $info['headers']['subject'],
  10. 'date' => $info['headers']['date'],
  11. 'from' => $info['headers']['from'],
  12. 'body' => $contents
  13. );
  14. }


Ten kod to jest czesc funkcji w pewnej klasie

Jak widac w pierwszej petli if przypisuje do zmiennej $contents to co jest w buforze, pozniej to wyswietlam no i elegancko na ekranie sie wszystko pojawia, ale dalej w drugiej funkcji che sobie to wrzucic do tablicy 'body' => $contents

No i wyswietlam tablice a tam w tym miejscu pustka

Do tego jeszcze taki error :

Cytat
Notice: Undefined variable: contents in C:\Apache\htdocs\PrackaMgr\class.FileModel.php on line 48

Gdzie linia 48 to ta 'body' => $contents
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Fifi209
post 25.10.2009, 22:23:17
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(Wolfie @ 25.10.2009, 22:01:24 ) *
w drugiej funkcji che sobie to wrzucic do tablicy 'body' => $contents


Funkcję ? Rozumiem, że to jest w funkcji i potem w innej chcesz przypisać $contents, czyli kłania się zasięg zmiennych.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Zosiek
post 25.10.2009, 22:32:55
Post #3





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Podstawy php
  1. <?PHP
  2. $tab = array( 'jeden' => 2, 'dwa' => 4, 'trzy' => -78 );
  3. foreach ($tab as $klucz => $wartosc)
  4. echo "tab['".$klucz."'] ==". $wartosc;
  5. ?>
lub
  1. <?PHP
  2. $tab = array(/* tu jakaś extremalnie skomplikowana struktura, tablice w tablicy itp.*/);
  3. echo '<pre>';
  4. print_r($tab);
  5. echo '</pre>';
  6. ?>

Odsyłam do
http://webmade.org/porady/tablice-asocjacyjne-print_r.php


--------------------
Pamiętaj ja staram się pomóc tobie, a ty może kiedyś pomożesz mnie. :D
Pomogłem Ci?? Jeśli tak to jestem z tego dumny. Jeśli nie to postaram się bardziej - nikt nie jest doskonały :P
Kliknij przycisk Pomógł pod postem, który Ci pomógł.
Go to the top of the page
+Quote Post
Fifi209
post 25.10.2009, 22:36:38
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(Zosiek @ 25.10.2009, 22:32:55 ) *
Podstawy php
  1. <?PHP
  2. $tab = array( 'jeden' => 2, 'dwa' => 4, 'trzy' => -78 );
  3. foreach ($tab as $klucz => $wartosc)
  4. echo "tab['".$klucz."'] ==". $wartosc;
  5. ?>

Podstawy php to by się Tobie chyba przydały. Jak widzę coś takiego to mi się płakać chce, Twój parser pewnie płacze nocami, że musi wykonywać coś tak durnego.

P.S. jak coś to:
  1. $tab = array( 'jeden' => 2, 'dwa' => 4, 'trzy' => 78 );
  2. foreach ($tab as $key => $value) {
  3. echo $key.' => '.$value;
  4. }

Cytat(Zosiek @ 25.10.2009, 22:32:55 ) *
lub
  1. <?PHP
  2. $tab = array(/* tu jakaś extremalnie skomplikowana struktura, tablice w tablicy itp.*/);
  3. echo '<pre>';
  4. print_r($tab);
  5. echo '</pre>';
  6. ?>

Odsyłam do
http://webmade.org/porady/tablice-asocjacyjne-print_r.php

Nie uważam, że jest mu to potrzebne.

Ten post edytował fifi209 25.10.2009, 22:36:50


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Wolfie
post 25.10.2009, 23:06:47
Post #5





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


fifi209 pomylka w tekscie, nie chodzi o funkcje tylko o druga petle if

Widac w listingu, przedstawie cała funkcje :

  1. public function getMsgsParts($dir) {
  2. $files = $this->getFiles($dir);
  3. $slice = array_slice($files, 0, 5);
  4. foreach($slice as $filename) {
  5. $mime = mailparse_msg_parse_file($dir.$filename);
  6. $struct = mailparse_msg_get_structure($mime);
  7. //print_r($struct);
  8. foreach($struct as $st) {
  9. $section = mailparse_msg_get_part($mime, $st);
  10. $info = mailparse_msg_get_part_data($section);
  11. //print_r($info);
  12. if($info['content-type'] == 'text/html') {
  13. $sec = mailparse_msg_get_part($mime, $st);
  14. mailparse_msg_extract_whole_part_file($sec, $dir.$filename);
  15. $contents = ob_get_contents();
  16. echo nl2br(htmlentities($contents));
  17. }
  18. if($info['headers']['subject'] !== null && $info['headers']['date'] !== null) {
  19. $part[] = array(
  20. 'subjects' => $info['headers']['subject'],
  21. 'date' => $info['headers']['date'],
  22. 'from' => $info['headers']['from'],
  23. 'body' => $contents
  24. );
  25. }
  26. }
  27. }
  28. return $part;
  29. }


No wiec odkrylem ze jednak zapisuje sie to do tablicy tylko ze jest jakies dziwne przesuniecie

Bo tak, czytam sobie z pliku dane, no i teraz czesc danych wstawiam do subject, date i form i one pochodza jak widac z jednego zrodla, a 'body' pochodzi stad :

  1. if($info['content-type'] == 'text/html') {
  2. $sec = mailparse_msg_get_part($mime, $st);
  3. mailparse_msg_extract_whole_part_file($sec, $dir.$filename);
  4. $contents = ob_get_contents();
  5. echo nl2br(htmlentities($contents));
  6. }


I teraz z tego co zauwazylem to body jest przesuniete -1 w stosunku do calej reszty czyli

subject : wiadomosc 2
date : wiadomosc 2
from : wiadomosc 2
body : wiadomosc 1

I tak przesuniecie wyglada , jesli zaladuje np 5 plikow to w body z pliku 5 jest body z pliku 4

Dlatego tez jak zaladowalem tylko 1 plik ( jedna wiadomosc) to byl komunikat ze $contents jest niezdefiniowany....
Go to the top of the page
+Quote Post
nospor
post 25.10.2009, 23:16:45
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




oj.....
któryś z twoich $info['content-type'] nie jest równe 'text/html' więc dla niego $contents się nie laduje. stad te przesuniecia.
dodaj ELSE i dla niego: $contents = '';


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Wolfie
post 25.10.2009, 23:59:13
Post #7





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


dalem else ale teraz wszystkie $contents sa puste czyli wszystkie body = '';

A no i sie pomylilem, bo teraz spojrzalem na swoje notatki i widze ze przesuneicie jest w druga strone, czyli body z wiadomosci 11 jest w wiadomosci 12.....

edit ------------

czyli tak jak wczesniej mowilem , sam juz sie gubie tongue.gif


Tak w widomosci 1 nie ma wogole text/html, ale jak zmienilem w if'ie z text/html na text/plain ktory napewno jest w wiadomosci 1 to i tak nie laduje sie body w pierwszym przypadku......to chyba nie w tym rzecz.....

Ten post edytował Wolfie 26.10.2009, 00:04:29
Go to the top of the page
+Quote Post
nospor
post 26.10.2009, 10:21:12
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




to zamiast zgadywac to moze sobie powyswietlac co tak naprawde tam masz...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:21