betekenis van echo $url[$i] output.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan West

Johan West

03/10/2015 16:05:53
Quote Anchor link
Ik heb een deel van een php script met daarin de waarde van $url[$i] en als ik dit echo krijg ik de waarde h en t. Ongeacht wat ik invoer voor $url, wat een reeks heeft met een verschillend aantal waarden, is de output h en t.

vb. script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for ($i=0; $i < $num ; $i++) {

if (filter_var($url[$i], FILTER_VALIDATE_URL) === false)


 {    
    echo 'linknummer : '. $i . ' heeft de waarde : ' . $url;
    
    echo '<br><br> ';
    echo ' dit is de waarde van url/i string : ' . $url[$i];
    
    echo '<br><br> ';
    
echo "</center>";

}


Wat betekent de waarde h of t hier?

Is dit correct en hoe kan ik er mee omgaan als ik een string of reeks waarde los op URL geldigheid wil testen met FILTER_VALIDATE_URL?
Gewijzigd op 03/10/2015 16:22:23 door Johan West
 
PHP hulp

PHP hulp

20/04/2024 17:11:17
 
Ozzie PHP

Ozzie PHP

03/10/2015 16:22:34
Quote Anchor link
Die h en t zijn waarschijnlijk de eerste 2 letters van je URL die begint met http:// ...

Waarschijnlijk is $url geen array maar een string.
 
Johan West

Johan West

03/10/2015 17:39:15
Quote Anchor link
ja klopt.
de vlg is wel een array (dwz is niet geïmplodeerd)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (filter_var($linkadd[$i], FILTER_VALIDATE_URL) === false)


volstaat dit om alle ongeldige URL's uit deze array te halen?
 
Johan K

Johan K

03/10/2015 18:17:01
Quote Anchor link
Johan West op 03/10/2015 17:39:15:
ja klopt.
de vlg is wel een array (dwz is niet geïmplodeerd)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (filter_var($linkadd[$i], FILTER_VALIDATE_URL) === false)


volstaat dit om alle ongeldige URL's uit deze array te halen?



Deze code valideerd of het een geldige url is, er zijn tekens die niet geldig zijn in een url. Waarom je de waardes h en t heb is omdat url waarschijnlijk geen array is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
 $str
= 'dit is een string';

 echo $str[0]; // "d".
 echo $str[0], $str[1], $str[2]; // "dit"
 echo $str; // "dit is een string"
?>


Wat jouw code doet is niets, het is verkeerd geschreven aangezien filter_var() een volledige url vraagt en krijgt maar 1 karakter dus valideert altijd naar "false".
Gewijzigd op 03/10/2015 18:24:54 door Johan K
 
Johan West

Johan West

03/10/2015 18:39:11
Quote Anchor link
Johan K op 03/10/2015 18:17:01:
Johan West op 03/10/2015 17:39:15:
ja klopt.
de vlg is wel een array (dwz is niet geïmplodeerd)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (filter_var($linkadd[$i], FILTER_VALIDATE_URL) === false)


volstaat dit om alle ongeldige URL's uit deze array te halen?



Deze code valideerd of het een geldige url is, er zijn tekens die niet geldig zijn in een url. Waarom je de waardes h en t heb is omdat url waarschijnlijk geen array is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
 $str
= 'dit is een string';

 echo $str[0]; // "d".
 echo $str[0], $str[1], $str[2]; // "dit"
 echo $str; // "dit is een string"
?>


Wat jouw code doet is niets, het is verkeerd geschreven aangezien filter_var() een volledige url vraagt en krijgt maar 1 karakter dus valideert altijd naar "false".




OK, ik zie nu hoe php hiermee omgaat. Maar ik wil dat mbv FILTER_VALIDATE_URL een array van webadressen wordt doorlopen.

De foute moeten eruitgehaald worden. De gebruiker moet dit opnieuw invullen.
 
Johan K

Johan K

03/10/2015 18:55:41
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

 $urls
= [
  'http://google.nl',
  'http://www.phphulp.nl',
  'http://www.tweakers.net'
 ];

 foreach($urls as $key => $url){
  if(filter_var($url, FILTER_VALIDATE_URL)){
   $link[] = $url;
   $invalidkeys[] = $key;
   echo "$url is valid";
  }
else {
   echo "$url is not valid";
  }
 }


 print_r($link);

 foreach($invalidkeys as $val){
  echo "deze url is ongeldig: {$urls[$val]}";
 }

?>
Gewijzigd op 03/10/2015 19:00:49 door Johan K
 
Thomas van den Heuvel

Thomas van den Heuvel

03/10/2015 19:07:20
Quote Anchor link
> volstaat dit om alle ongeldige URL's uit deze array te halen?

Neen.

Mogelijk is de werking ondertussen veranderd, maar levert dus false negatives en laat mogelijk gevaarlijke zaken door.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.