Page 1 sur 1

Récupération d'URLs avec chaîne de caractère incluses

Posté : 11 déc. 2012, 17:19
par pingy
Bonjour, j'ai créé un programme qui me sert à tester les URLs de mon site pour voir si elles sont toujours en fonction. Le programme fonctionne parfaitement mais j'ai voulu aller plus loin en récupèrent toutes les URLs qui sont sur le site j'ai effectué cette évolution avec succès mais là je bloque car je voudrais que mon print_r me retourne que les URLs avec une chaîne de caractères à l’intérieur (exemple: dans mon 1er champ je rentre mon domaine http://mondomaine.fr puis dans le 2e je rentre ma chaîne de caractères photo)

j'aimerais avoir en retour:

0=>http://mondomaine.fr/photo_maison
0=>http://mondomaine.fr/photo_bebe
0=>http://mondomaine.fr/photo_jardin

sans avoir la liste complète de mes URLs
Alors j'ai testé avec plusieurs fonctions comme array_search et je n'arrive même pas à affiche true ou false
// je récupère le contenu
$file = file_get_contents($Url);
// je récupère les URLs
preg_match_all('/<a[^>]+href="([^"]+)/i', $file, $urls);
// je les affiches
print_r_V2($urls[1]);
biensur $Url est récupéré sur mon formulaire

Re: Récupération d'URLs avec chaîne de caractère incluses

Posté : 13 déc. 2012, 11:06
par pingy
Alors j'ai tenter avec une condition mais ça ne marche toujours pas.

Quelqu'un pourrais m'aider ? :(

mon code
//-----  récupération du formulaire
	$url= $_POST['domaine'];
	$mot= $_POST['mot'];
	$test= $url . '/' . $mot . '/';

			//--- test de la récupération

			//echo "$url ==> $mot ==> $test";

					//---- Conditionnement ----

					if (empty($mot)) {
						$scan = file_get_contents($url);
							preg_match_all('/<a[^>]+href="([^"]+)/i', $scan, $res);
								print_r($res[1]);
					}
					else {
						$scan = file_get_contents($url);
										//---- Formatage de l'URL ---
									$url= str_replace('.', '\.', $url);
									$url= str_replace('/', '\/', $url);
							preg_match_all('/<a[^>]+href="'.$test.'([^"]+)/i', $scan, $res);
							echo $url;
								print_r($res[1]);
								
					}