[php] variable in functie doet niets

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Via een Getelementsbytag name functie probeer ik specifieke informatie van een website te halen.
Hier hebben we overigens ook toestemming voor.

Het probleem is dat zodra ik variable in ga vullen in de functie dat er dan niets gevonden wordt. Terwijl als ik het statisch invoer het wel werkt.


Om regel 20 gaat het dus.
Zodra ik daar de variable invul geeft het niets terug.
De variable zelf zijn wel oke.
Zoals je ziet print ik ze later uit en dan krijg ik gewoon waardes terug.

Even een stukje code
PHP:
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
28
29
30
31
32
33
while ($scanlinks = mysql_fetch_array($result)){

$site = parse_url($scanlinks[site]);




//print "Site $scanlinks[site]\n";


$sql2 = "SELECT spiderhtmltag, spiderhoeveelstehtmltag from spider2 where site like '%" . $site[host] . "'";  
$result2 = mysql_query("$sql2");
$htmltags = mysql_fetch_array($result2);

$load = new DOMDocument;
$load->loadHTMLFile("$scanlinks[url]");
print "$scanlinks[url]\n";


$omschrijving = $load->getElementsByTagName('" .$htmltags[0]."')->item("$htmltags[1]")->textContent;
//$omschrijving = $load->getElementsByTagName('td')->item(64)->textContent;
print "$htmltags[0] $htmltags[1]\n";
[b]De regel hieronder print dus alleen maar OMSCHRIJVING[/b]
print"OMSCHRIJVING $omschrijving\n";
if(empty($omschrijving)){
//print "Removed dead entry at link $scanlinks[url]\n";
$dodelinks++;
}
}

//while ($links = mysql_fetch_row($result)){

print "Removed $dodelinks dead entries\n";


Ik heb verschillende manieren geprobeerd om de variable in te vullen met quotes, zonder etc
Iemand misschien een tip want ik loop er echt op vast

[ Voor 12% gewijzigd door een moderator op 04-12-2008 11:58 . Reden: Code tags (=php) toegevoegd... ]

20 jaar, en wat had ik bereikt?


Acties:
  • 0 Henk 'm!

  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 16-09 15:47
Moet het niet zijn:
PHP:
1
$omschrijving = $load->getElementsByTagName($htmltags[0])->item($htmltags[1])->textContent();

Acties:
  • 0 Henk 'm!

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 31-08 10:22

JayVee

shibby++!

PHP:
1
2
$sql2 = "SELECT spiderhtmltag, spiderhoeveelstehtmltag from spider2 where site like '%" . $site[host] . "'";  
$result2 = mysql_query("$sql2");

Waarom zet je variabelen tussen quotes? Iets als
PHP:
1
echo "Hallo $user, hoe is het dan";

werkt weliswaar, maar het is niet erg duidelijk. Maar om $sql2 tussen quotes te zetten, dat gaat nergens over :).

En als je variabelen tussen single quotes zet werkt het trucje helemaal niet, vandaar dat
PHP:
1
$load->getElementsByTagName('" .$htmltags[0]."')
niet werkt, want je vraagt nu naar alle tags met de (letterlijke!) naam
code:
1
" .$htmltags[0]."

en die bestaan niet!

ASCII stupid question, get a stupid ANSI!


Acties:
  • 0 Henk 'm!

  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Het probleem is dat de $htmltags[0] dus wel tussen die enkele quotes moet omdat de functie anders niet werkt.
Zie ook het statische voorbeeld op regel 21

Daarom had ik die constructie gemaakt. Hoe kan ik die $htmltags dan toch binnen die enkele quotes zetten?

Ik kan niet de hele functie tussen quotes zetten omdat hij hem dan als string gaat zien en op php.net kan ik ook niet echt iets vinden :(

EDIT: heb het al.
$omschrijving = $load->getElementsByTagName("$b")->item($a)->textContent;


De eerste mocht dus ook binnen dubbele quotes.

[ Voor 36% gewijzigd door mazz op 04-12-2008 21:04 ]

20 jaar, en wat had ik bereikt?


Acties:
  • 0 Henk 'm!

  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 17:09
mazz schreef op donderdag 04 december 2008 @ 20:54:
Het probleem is dat de $htmltags\[0] dus wel tussen die enkele quotes moet omdat de functie anders niet werkt.
Zie ook het statische voorbeeld op regel 21

Daarom had ik die constructie gemaakt. Hoe kan ik die $htmltags dan toch binnen die enkele quotes zetten?
Waarom zou je een variable tussen quotes moeten zetten als je hem als parameter stuurt? :|
Weet je zeker dat je $htmltags wel klopt?
Tip: kijk even naar hoe je je resultaat ophaalt (het lijkt me dat LIKE meerdere rows gaat geven? ;))

Acties:
  • 0 Henk 'm!

  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Zie mn edit ;)

Het is al opgelost.
Toch bedankt!

20 jaar, en wat had ik bereikt?


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
mazz schreef op donderdag 04 december 2008 @ 20:54:
$omschrijving = $load->getElementsByTagName("$b")->item($a)->textContent;

De eerste mocht dus ook binnen dubbele quotes.
Mag wel ja, maar het is echt zwaar overbodig. Laat die quotes gewoon weg en het werkt ook. :z

{signature}

Pagina: 1