link aanpassen php

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
He,

Voor de volleybalvereniging probeer ik een lijst met sporthallen op de site van de vereniging over te nemen, in deze informatie staan links met een adres en een routebeschrijving. Deze links zijn echter alleen naar de "local host", oftewel de pagina zelf. Ik zou na de <a href=" graag een stukje URL toevoegen, zodat de links wel werken. Daarvoor heb ik het volgende stukje PHP code geschreven:
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
34
<?php
echo "<P><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=0 WIDTH=\"100%\"><tbody><TR><TD VALIGN=top WIDTH=40>";
 $url="http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/Zroute.php";
 $fp = fopen($url, "r");
 $data = array();
 while(!feof($fp)) {
  array_push($data,fgets($fp, 1024));
 }
 fclose($fp);
 
 $inTable=false;
 foreach($data as $key => $value){
  if(strstr($value,"<P><A HREF=\"Zroute.php?1"))
  {
   $inTable=true;
  }
  elseif(strstr($value,"<P><A HREF=\"Zroute.php?501") != false)
  {
   $inTable=false;
   echo "</TD></TABLE></P>";
   }
   
   if(($intable) && strstr($value,"<A HREF=\""))
   {
   list($a,$b) = split('[=]',$value);
   echo $a;
   echo "=\"http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/";
   echo $b;
   }
   elseif($inTable)
   {
   echo $value;
   }
 }

Het filteren van de lijst lukt, alleen het "uitbreiden" van de links lukt niet. Ik heb gezocht, maar ik kon geen aansluitende artikelen vinden..... kan iemand mij helpen??? :?

alvast bedankt! _/-\o_

Allias0-06

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

De links gaan naar een filename zonder pad of host. Dat betekent dat je ook gewoon dit kan doen:
PHP:
1
2
echo '<base href="http://je_eigen_site.com/dir/">';
echo file_get_contents('http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/Zroute.php');
En anders zou ik gewoon eens naar str_replace kijken en dat loslaten op file_get_contents. Je buffer in brokken van 1024 bytes in een array plaatsen en daar doorheen loopen is ook geen strak plan; dan loop je gegarandeerd een keer tegen halve output aan :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Alex Picard
  • Registratie: November 2005
  • Laatst online: 04-09 11:25
Het is handig als je je code tussen code tags zet:
[code=PHP]
... code ...
[/code]

Ook is het ten zeerste aangeraden je code te indenten.

Voor de volgende keer willen we het dus graag zo zien:

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
34
35
36
<?php
echo "<P><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=0 WIDTH=\"100%\"><tbody><TR><TD VALIGN=top WIDTH=40>";
$url="http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/Zroute.php";
$fp = fopen($url, "r");
$data = array();
while(!feof($fp)) {
    array_push($data,fgets($fp, 1024));
}
fclose($fp);

$inTable=false;
foreach($data as $key => $value){

    if(strstr($value,"<P><A HREF=\"Zroute.php?1")) 
    {
        $inTable=true;
    }
    elseif(strstr($value,"<P><A HREF=\"Zroute.php?501") != false)
    {
        $inTable=false;
        echo "</TD></TABLE></P>";
    }

    if(($intable) && strstr($value,"<A HREF=\""))
    {
        list($a,$b) = split('[=]',$value);
        echo $a;
        echo "=\"http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/";
        echo $b;
    }
    elseif($inTable)
    {
    echo $value;
    }
}
?>


Je gebruikt op een plek $intable in plaats van $inTable, verder sluit ik me aan bij Spider.007

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ok, bedankt! sorry voor de notatie manier! ik post niet vaak iets op het forum....

bedankt voor de tips, ik ga het proberen!

als het niet lukt horen jullie meer!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
het is bijna gelukt, stomme hoofdletters....

Het enige probleem is nu de qoute tussen de map PHP en de Zroute.php

HTML:
1
<P><A HREF="http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/"Zroute.php?2">2</A></P>


iemand ideeen?

Acties:
  • 0 Henk 'm!

  • Alex Picard
  • Registratie: November 2005
  • Laatst online: 04-09 11:25

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor de zeer snelle hulp! het werkt! voor de geinteresseerden, het is de volgende 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
34
35
36
37
38
39
<?php
echo "<P><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=0 WIDTH=\"100%\"><tbody><TR><TD VALIGN=top WIDTH=40>";
$url="http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/Zroute.php";
$fp = fopen($url, "r");
$data = array();
while(!feof($fp)) {
    array_push($data,fgets($fp, 1024));
}
fclose($fp);

$inTable=false;
foreach($data as $key => $value){

    if(strstr($value,"<P><A HREF=\"Zroute.php?1")) 
    {
        $inTable=true;
    }
    elseif(strstr($value,"<P><A HREF=\"Zroute.php?501") != false)
    {
        $inTable=false;
        echo "</TD></TABLE></P>";
    }

    if(($inTable) && strstr($value,"<A HREF=\""))
    {
        list($a,$b) = split('[=]',$value);
        echo $a;
        echo "=\"http://regios.nevobo.nl/include/files//groepen//Zuid-west/PHP/";
        list($c,$d,$e) = split('"',$b);
        echo $d;
        echo "\"";
        echo $e;
    }
    elseif($inTable)
    {
    echo $value;
    }
}
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dat is inderdaad een nettere oplossing, ipv de dubbele split actie die ik doe! bedankt, maar het werkt alletwee!
Pagina: 1