Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [php] linkchecker (https://forum.scholieren.com/showthread.php?t=75482)

JJzD 01-05-2002 15:35

[php] linkchecker
 
heej ik wil een linkchecker maken die controleert of je links bestaan (lokaal)

vraag 1
hoe strip ik de link en naam uit een anchor??(het zijn html files)

vraag 2
wat is sneller?? links, namen en files in db zetten en dan aangeven welke fout gaan??
of de links met een naam in een array zetten en dan de link controleren?? (file_exist)(kan dat?? de key van een array printen??)

eddie 01-05-2002 15:37

Citaat:

JJzD schreef:
heej ik wil een linkchecker maken die controleert of je links bestaan (lokaal)

vraag 1
hoe strip ik de link en naam uit een anchor??(het zijn html files)

vraag 2
wat is sneller?? links, namen en files in db zetten en dan aangeven welke fout gaan??
of de links met een naam in een array zetten en dan de link controleren?? (file_exist)(kan dat?? de key van een array printen??)

1: substr(string, beginpositie, aantal kar) (oid, php heb ik niet super goed gebruikt)

2: de db lijkt mij sneller

JJzD 01-05-2002 15:43

Citaat:

eddie schreef:

1: substr(string, beginpositie, aantal kar) (oid, php heb ik niet super goed gebruikt)

aantal karakters is telkens anders. kan er geen begin en eindpositie worden gegeven??

Citaat:


2: de db lijkt mij sneller

dat is dus eerst strippen
dan uitlezen
testen
terugschrijven welke niet werkt
uitlezen welke niet gewerkt hebben

array kan je strippen==> array zetten ==> Fopen($value)
if (!FOPEN){ print $naam met de link $link failed}

array lijkt mij sneller :)

eddie 01-05-2002 15:52

Citaat:

JJzD schreef:


aantal karakters is telkens anders. kan er geen begin en eindpositie worden gegeven??

Je kun de beginkarakters opzoeken met een functie (weet zo niet welke). In FoxPro (;)):
Code:

cString = 'blabla <A href="ddd">xxx</A>'
clocatie = SUBSTR( cString, AT( cString, '<A href=' ), AT( cString, '">' ) - AT( cString, '<A href=' ) + 1)

Citaat:

JJzD schreef:

dat is dus eerst strippen
dan uitlezen
testen
terugschrijven welke niet werkt
uitlezen welke niet gewerkt hebben

array kan je strippen==> array zetten ==> Fopen($value)
if (!FOPEN){ print $naam met de link $link failed}

array lijkt mij sneller :)

Waarom vraag je het dan? :rolleyes:

JJzD 01-05-2002 16:01

Citaat:

eddie schreef:

Waarom vraag je het dan? :rolleyes:

je mag toch wel een idee hebben van het antwoord maar het cker willen weten??

maar bedankt voor je eerste helft :)

eddie 01-05-2002 17:21

db is imo toch sneller
Ik weet niet wat je er precies mee wilt, maar:
links:
omschrijving, link, werkt

select * from links where werkt

lees rijen een voor een uit en test welke het niet doen, en zet dit weer in de database...
update links set werkt = .F. where ......

Dit is imo uiteindelijk sneller. :)

Chimera 01-05-2002 18:14

Citaat:

eddie schreef:

Dit is imo uiteindelijk sneller. :)

Hoezo? Als de data niet persistent hoeft te zijn, is een array altijd sneller dan een database. Tegen de tijd dat een link is opgebouwd, is die array al gevuld.

eddie 01-05-2002 18:18

Citaat:

Chimera schreef:


Hoezo? Als de data niet persistent hoeft te zijn, is een array altijd sneller dan een database. Tegen de tijd dat een link is opgebouwd, is die array al gevuld.

Daarom schreef ik ook
Citaat:

Ik weet niet wat je er precies mee wilt

Chimera 01-05-2002 18:22

Citaat:

eddie schreef:

Daarom schreef ik ook

Dat zal allemaal wel. Maar er standaard vanuit gaan dat een DB sneller is, is nogal vreemd. Iedereen met een beetje verstand van programmeerwerk weet dat DB accesses i.v.t. geheugen accesses duur zijn.

eddie 01-05-2002 18:26

Citaat:

Chimera schreef:


Dat zal allemaal wel. Maar er standaard vanuit gaan dat een DB sneller is, is nogal vreemd. Iedereen met een beetje verstand van programmeerwerk weet dat DB accesses i.v.t. geheugen accesses duur zijn.

Offtopic:
Ik ging er vanuit dat hij de links in een db heeft staan, met een extra veldje 'werkt' oid. Alleen de links die werken worden weergegeven.

Chimera 01-05-2002 18:27

In het update-script dat topics doorzocht op gebruikersnamen gebruikte ik hetvolgende om de URL uit een <a> tag te halen:

$url = ereg_replace ('(<A HREF=")(.*)(">.*)',"\\2", $url);

Dit werkt prima bij simpele tags, zolang er tussen de href="" en de sluitende > geen andere zooi staat. Anders moet je zelf die regexp ff aanpassen.

De andere rotzooi (table tags enzo) gooi je uit de strings met de strip_tags() functie.

Chimera 01-05-2002 18:28

Citaat:

eddie schreef:

Ik ging er vanuit dat hij de links in een db heeft staan, met een extra veldje 'werkt' oid. Alleen de links die werken worden weergegeven.

Beter lezen dan. "het zijn html files" zegt genoeg IMHO.

eddie 01-05-2002 18:34

Citaat:

Chimera schreef:


Beter lezen dan. "het zijn html files" zegt genoeg IMHO.

Waarom geef jij dan php-code? :confused:

Het lijkt mij erom te gaan dat de verwijzing naar een html file is. De linkomschrijving etc kunnen dan imo nog steeds uit een database worden gehaald.

Chimera 01-05-2002 19:01

Citaat:

eddie schreef:

Waarom geef jij dan php-code? :confused:

Het lijkt mij erom te gaan dat de verwijzing naar een html file is. De linkomschrijving etc kunnen dan imo nog steeds uit een database worden gehaald.

:rolleyes:

Hij bedoelt dus dat hij met een PHP script links in een andere (HTML) file wil checken. Hij opent dus in het script een pagina, en checkt de links in die pagina.

eddie 01-05-2002 19:05

Citaat:

Chimera schreef:


:rolleyes:

Hij bedoelt dus dat hij met een PHP script links in een andere (HTML) file wil checken. Hij opent dus in het script een pagina, en checkt de links in die pagina.

oooooooooo... bedoelt hij daaaahaaaat :o :D :D :)

JJzD 02-05-2002 18:27

hoe lees je een file in zijn geheel in??

nu maakt ie met file() een array

of moet ik 'm daar gewoon uit strippen??

Chimera 03-05-2002 08:51

Citaat:

JJzD schreef:
hoe lees je een file in zijn geheel in??

nu maakt ie met file() een array

of moet ik 'm daar gewoon uit strippen??

Dat doe ik meestal, maar anders moet je het met fopen doen.

Orion 03-05-2002 09:56

Citaat:

JJzD schreef:
hoe lees je een file in zijn geheel in??

nu maakt ie met file() een array

of moet ik 'm daar gewoon uit strippen??

implode("",file(/bla/bla.bla));

Chimera 03-05-2002 09:58

Citaat:

Orion schreef:

implode("",file(/bla/bla.bla));

Nogal ineffecient. Kun je beter met fgets() de hele file in een keer in een string inlezen.


Alle tijden zijn GMT +1. Het is nu 03:53.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.