Goedendag,

Ik heb een website en wil een script alleen laden als een bepaald woord (bijvoorbeeld "phphulp") voorkomt tussen de body tags op de betreffende webpagina.

if (preg_match("/phphulp/", $subject)) {
  // script laden
}


Mijn vraag, hoe moet ik de $subject instellen? De $subject moet dus de body content zijn toch? Maar hoe geef ik de opdracht om tussen body tags te zoeken?

Deze pagina is overigens variabel, dus een (vaste) URL in de $subject is geen optie.

Guido
Hoe haal je de "body tags" op, op de betreffende webpagina?
Hoi Elmar,

Tja, ook dat weet ik niet goed..

Middels file_get_contents() schijn ik de webpagina te kunnen doorzoeken, maar pageload werd toen enorm. Dus ik deed iets niet goed ;-)

Guido
Geef eens relevante code...
Hoe bedoel je, ik wil alleen weten hoe kan zoeken tussen de body tags van een webpagina. Dus hoe ik de $subject moet instellen.

Guido
Ik raak je kwijt...

Je hebt een website, met een script, die content genereert of ergens ophaalt... correct?

Vervolgens zeg je: "Middels file_get_contents() schijn ik de webpagina te kunnen doorzoeken"
Dus ... dit betreft dus de content van een "andere" website? correct?


Zodoende dat ik vroeg om jouw relevante code...

Maar goed; als je ergens zoiets gebruikt: $content = file_get_contents().
Dan zit het content gedeelte in de variabele $content...

Je zou dan zoiets kunnen doen:
<?php
// aangenomen dat dit een soort van jou functie is.
$content = file_get_contents();

//vervolgens:
$content = strpos("phphulp", $content);
if ($content !== false) {
include "script.php";
}
?>
Hoi Elmar,

Duidelijk.

Komt er eigenlijk op neer dat ik een stylesheet (css file) alleen wil laden als een formulier op de pagina staat. Anders heeft het geen zin om stylesheet te laden.

Ik dacht dit met preg_match te moeten doen. En om de vraagstelling heel eenvoudig te houden, had ik dus doorgegeven te zoeken naar een bepaald woord in mijn code (phphulp), maar eigenlijk zoek ik naar een CSS class of een form ID.

Met een kleine aanpassing schijnt het te werken:
$content = file_get_contents('https://www.phphulp.nl/');
$content = strpos($content, "phphulp");


Maar de URL is dus variabel (formulier staat niet op vaste pagina), maar ik denk dat ik daar wel uit ga komen, via $server tag.

Bedankt voor zover!

Guido
Je zou wellicht ook zoiets kunnen doen:

<?php
$content = file_get_contents('https://www.phphulp.nl/';);
$phphulp= strpos($content, "phphulp");
$joep= strpos($content, "Joep");

if($phphulp){
//....
}

if($joep){
// ...}
}
?>

Worden het er heel veel.. wellicht een array maken / functie schrijven?
Dat is inderdaad netter.

Ik merk dat ik ook gewoon op ID of CSS class kan zoeken, dat is wat ik wil:
$phphulp= strpos($content, 'class="my-class"');


Zie jij hier problemen als ik het zo doe? Conflict met iets, laadtijd, iets anders?

Guido
Als je je "data" kent, dan zie ik geen problemen.
Hoi Elmar,

Nou nee, enige wat ik weet is dat mijn formulier op een pagina kan staan, en ik stylesheet alleen wil laden wanneer het ID (of CSS class) gevonden wordt op die pagina..

Wat zou eventueel een conflict kunnen veroorzaken dan?

Guido

[size=xsmall]Toevoeging op 15/07/2017 14:39:44:[/size]

Hoi Elmar,

Ik merk dat als $content dezelfde site is als waar de rest vh script staat, de pagina eindeloos blijft laden. Dus ik denk niet dat dit gaat werken.

In ieder geval bedankt voor je hulp.

Guido

Reageren