Я пытался устранить неполадки в программе, которую пытаюсь создать, и мне удалось выяснить, что является причиной проблемы, однако исправить ее у меня не удалось.
Я используюфункция объектной модели документа в php, позволяющая получать массив ссылок из базы данных и обрабатывать их одну за другой, однако в @ $ doc-> loadHTMLFile ("$ alllinks") это делается;В этой строке есть проблема с этой функцией, принимающей значения массива из базы данных.
Однако я нахожу озадачивающим то, что если я создаю общий массив, он работает, но из базы данных (или нескольких других методов) он просто терпит неудачу,
вот версия, которая работает:
<?php session_start();
// EDIT: Use a custom function to do the
// reverse of SORT_NUMERIC with asort
function height_compare($a1, $b1)
{
if ($a1 == $b1) {
return 0;
}
return ($a1 > $b1) ? -1 : 1;
}
$all_links = array('http://example.com/klvvobj','http://example.net/s/109228626');
foreach($all_links as $alllinks){
$doc = new DOMDocument();
// Okay this is HTML is kind of screwy
// So we're going to suppress errors
@$doc->loadHTMLFile("$alllinks");
// Get all images
$images_list = $doc->getElementsByTagName('img');
$images = array();
foreach($images_list as $image) {
// Get the src attribute
$image_source = $image->getAttribute('src');
if (substr($image_source,0,7)=="http://"){
$image_size_info = getimagesize($image_source);
$images[$image_source] = $image_size_info[1];
print_r($images);
}
}
// Do a numeric sort on the height
uasort($images, "height_compare");
$tallest_image = array_slice($images, 0,1);
$mainimg = key($tallest_image);
echo "<img src='$mainimg' />";
}
print_r($images);
?>
, а вот версия, которая не работает:
<?php session_start();
include 'functions.php';
$query = mysql_query("SELECT * FROM links");
function height_compare($a1, $b1)
{
if ($a1 == $b1) {
return 0;
}
return ($a1 > $b1) ? -1 : 1;
}
while($result = mysql_fetch_array($query)) {
$link = $result['link'];
$doc = new DOMDocument();
// Okay this is HTML is kind of screwy
// So we're going to suppress errors
@$doc->loadHTMLFile($link);
// Get all images
$images_list = $doc->getElementsByTagName('img');
$images = array();
foreach($images_list as $image) {
// Get the src attribute
$image_source = $image->getAttribute('src');
if (substr($image_source,0,7)=="http://"){
$image_size_info = getimagesize($image_source);
$images[$image_source] = $image_size_info[1];
print_r($images);
}
}
// Do a numeric sort on the height
uasort($images, "height_compare");
$tallest_image = array_slice($images, 0,1);
$mainimg = key($tallest_image);
echo "<img src='$mainimg' />";
}
echo '<a href="logout.php">Log out</a>';
?>