[PHP] Structure_graph laadt blanco pagina

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • amx
  • Registratie: December 2007
  • Laatst online: 22:39
Ik heb een voorbeeld gevolgd om een ongerichte graaf via een website te tonen.
Dit voorbeeld beschrijft vrij duidelijk met welke code via php een graaf kan worden gemaakt.
Ik maak gebruik van XAMPP, waarbij de benodigde onderdelen Pear en de module structure_graph al meegeinstalleerd zijn.

De syntax is vrij overzichtelijk en volgens de website evenals de officiële documentatie moet het vrij eenvoudig zijn.

Dit is de code zoals meegegeven in het voorbeeld.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
require_once 'Structures/Graph.php';
require_once 'Structures/Graph/Node.php';
 
$nonDirectedGraph = new Structures_Graph(false);
 
$nodeA = new Structures_Graph_Node();
$nodeB = new Structures_Graph_Node();
$nodeC = new Structures_Graph_Node();
$nodeD = new Structures_Graph_Node();
$nodeE = new Structures_Graph_Node();
 
$nonDirectedGraph ->addNode($nodeA);
$nonDirectedGraph ->addNode($nodeB);
$nonDirectedGraph ->addNode($nodeC);
$nonDirectedGraph ->addNode($nodeD);
$nonDirectedGraph ->addNode($nodeE);
 
$nodeA->connectTo($nodeB);
$nodeB->connectTo($nodeC);
$nodeB->connectTo($nodeD);
$nodeD->connectTo($nodeC);
$nodeC->connectTo($nodeE);
$nodeE->connectTo($nodeD);

$nodeA->setData("node A");
?>


Toch wanneer ik de php code aanroep, blijft het in de browser blanco. Ik krijg geen foutmeldingen, niks.
De laatste regel code heb ik zelf toegevoegd, gebaseerd op de officiële documentatie.
Heeft iemand enig idee waarom de browser geen gegevens laadt of in welke richting ik moet zoeken?

Acties:
  • 0 Henk 'm!

  • Donderpoes
  • Registratie: April 2011
  • Laatst online: 11-05 23:09
Wat verwacht je te zien in je browser?

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 23:31

MueR

Admin Devschuur & Discord

is niet lief

Schopje naar Programming

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • amx
  • Registratie: December 2007
  • Laatst online: 22:39
Donderpoes schreef op vrijdag 31 juli 2015 @ 11:57:
Wat verwacht je te zien in je browser?
Op de voorbeeldwebsite worden er knooppunten weergegeven met een ingraad en een uitgraad. Aangepast in de code is in knooppunt nodeA moet er een tekst worden weergegeven "node A".

Door middel van addNode worden de knooppunten aangemaakt, via connectTo worden de verbindingen aangemaakt.

de bestanden bij require_once zijn aanwezig.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Wat staat er in de error-logs van PHP? Wat zie je als je error_reporting(-1) aanzet?

Acties:
  • 0 Henk 'm!

  • Donderpoes
  • Registratie: April 2011
  • Laatst online: 11-05 23:09
amx schreef op vrijdag 31 juli 2015 @ 12:19:
[...]


Op de voorbeeldwebsite worden er knooppunten weergegeven met een ingraad en een uitgraad. Aangepast in de code is in knooppunt nodeA moet er een tekst worden weergegeven "node A".

Door middel van addNode worden de knooppunten aangemaakt, via connectTo worden de verbindingen aangemaakt.

de bestanden bij require_once zijn aanwezig.
Misschien zit ik er helemaal naast hoor, heb het niet goed bekeken. Maar volgens mij is het alleen maar een pakket om data structures te maken waar je bewerkingen op kan loslaten.

Het tekenen zul je of zelf moeten doen of met javascript bijvoorbeeld.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 22:32

Janoz

Moderator Devschuur®

!litemod

Als hetgeen in je starttopic staat de enige code is dan is het niet vreemd dat je een lege pagina krijgt. Er wordt immers helemaal niks afgedrukt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Martindo
  • Registratie: November 2010
  • Laatst online: 23-09 11:40
Aan je code te zien, verwacht ik een lege pagina. Er wordt helemaal niets gerenderd.

Vergeet je niet iets van een methode die de afbeelding voor je tekent of iets dergelijks? Krijg je geen fouten en heb je toevallig error reporting uitstaan?

Acties:
  • 0 Henk 'm!

  • amx
  • Registratie: December 2007
  • Laatst online: 22:39
Bedankt voor de reacties. Ik heb zelf ook eens naar de code gekeken (ik ben zelf geen php expert, maar ik herken denk ik wel redelijk wat code), ik zie zelf niet waar de code wordt aangeroepen om de graaf via de browser te tonen.

Een php script dat dit wel zegt te doen is Graphviz. Graphviz is een pakket dat gebruikt kan worden om grafen te tekenen. Ook is er een php bestand van dat vergelijkbare functionaliteit belooft.

Volgens de website maakt Graphviz wel een afbeelding van de graaf en toont deze in de browser.
Helaas, ook hier hetzelfde probleem. Geen foutmelding (error reporting staat aan volgens php.ini, syntaxfouten worden wel herkend overigens). Wel een blanco scherm.

Ik heb een standaard xampp installatie met alleen apache en php (pear). De module wordt mogelijk niet meer bijgewerkt door de ontwikkelaar, of mogelijk is het een lokaal probleem. Ik zal nog eens op een andere pc testen. Mocht er iemand zijn die iets kan bijdragen over het werkend krijgen van Graphviz.php hoor ik het graag.

Mijn php code (overgenomen van de officiele website)

code:
1
2
3
4
5
6
7
8
<?php
require_once 'Image/GraphViz.php';

$gv = new Image_GraphViz();
$gv->addEdge(array('wake up'        => 'visit bathroom'));
$gv->addEdge(array('visit bathroom' => 'make coffee'));
$gv->image();
?>



[EDIT]

Volgens de comments op de officiele website klopt de code niet helemaal.
De onderstaande code, wordt aangegeven, werkt wel:
code:
1
2
3
4
5
6
7
//save the PNG image data to a temporary PNG file
$file = fopen("test.png", "wb");
$raw_data = $gv->fetch('png');
fwrite ($file, $raw_data, strlen($original_data));
fclose($file);
//now create an HTML image that refereces that temporary file
echo '<img src="test.png" />';


Dit levert wel een foutmelding op. Wat de code beschrijft is het aanmaken van een nieuw png bestand. De code fetcht van de graphviz code middels de variabele $raw_data de informatie van het oorspronkelijke script. De foutmelding bij het uitvoeren van de code betreft de variabele $original_data. Nergens in de verdere code wordt hiernaar verwezen. Wanneer ik een random variabele invul in plaats van $original_data, zie ik wel dat test.png wordt geladen, maar meer dan het icoontje van een png afbeelding zie ik niet .

Ik blijf over met de vraag wat de bedoeling is van het gedeelte strlen($original_data) en hoe ik de variabele moet invullen.

Ik ben eigenlijk op zoek naar een low level tooltje dat liefst via php een graaf tekent, en dit belooft het, misschien is het niet low-level genoeg. Nogmaals: relevante bijdragen worden gewaardeerd :)

[ Voor 31% gewijzigd door amx op 03-08-2015 15:45 ]

Pagina: 1