Перейти к содержимому

Фотография

PHPвопросы по PHP


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 411

#181
MadRabbit

MadRabbit
  • Постоялец
  • 325 сообщений

кто знает как получить "КЕЙНЫЙ" путь в массиве
Array(
'key1'=>Array(
'key2'=>'val2',
'key4'=>'val4',
'key6'=>Array(
'key7'=>'val7'
)
)
);
т.е. как вытащить вот этот путь
key1/key6/key7

массив многомерен, поэтому тут возникают сложность


На вскидку вышло вот что:
<?php
$tree = array
(
	'key1'=>array
	(
		'key2'=>'val2',
		'key4'=>'val4',
		'key6'=>array
		(
			'key7'=>'val7'
		)
	)
);

function get_path( $haystack, $needle, $path=array() )
{
	foreach( $haystack as $key=>$value )
	{
		if ( $key==$needle )
		{
			$path[] = $key;
			return $path;
		}
		if ( is_array($value) )
		{
			$sub_path = $path;
			$sub_path[] = $key;
			$result = get_path( $value, $needle, $sub_path );
			if ( is_array($result) )
				return $result;
		}
	}
	return false;
}

echo join('/',get_path($tree,'key7'));
?>

  • 0

#182
San_k

San_k
  • В доску свой
  • 1 509 сообщений
как реализовать многопоточность на пхп?

хочу, чтобы параллельно можно было создавать несколько соединений
  • 0

#183
kornel

kornel
  • В доску свой
  • 9 069 сообщений
php простой скриптовый язык и в нем нет инструментов, для организации многозадачности любого вида.
  • 0

#184
MadRabbit

MadRabbit
  • Постоялец
  • 325 сообщений
Корнел прав; но можно воспользоваться возвожностыми операционной системы. С другой стороны многозадачность не всегда необходима. Опишите пожалуйста задачу.
  • 0

#185
Slim_Shady

Slim_Shady
  • Завсегдатай
  • 128 сообщений
народ хелп плиз... раньше у народа стоял 2000 офис/винда и функция mail отрабатывала русский нормально... щас перешли на ХР винду.. и 2003 офис... рус шрифт вот убей не могу сделать... принимаю мыло через microsoft outlook...
вот краткий пример как есть в данный момент:

$subject = "Информация";
$mailcontent = "Привет";
$fromaddress = "From: администратор";
mail($email, $subject, $mailcontent, $fromaddress);

тело сообщения вместе с темой отбражается "кракозябрами"(непонятной кодировкой).
пробовал
convert_cyr_string ($mailcontent, "w","k")
не помогает :-)

Хелп плииз
  • 0

#186
T. Anre

T. Anre

    Data Miner

  • В доску свой
  • 2 327 сообщений

как реализовать многопоточность на пхп?

хочу, чтобы параллельно можно было создавать несколько соединений

Думаю это поможет pcntl_fork.

php простой скриптовый язык и в нем нет инструментов, для организации многозадачности любого вида.

Но мы, ведь, можем делить процесс.

народ хелп плиз... раньше у народа стоял 2000 офис/винда и функция mail отрабатывала русский нормально... щас перешли на ХР винду.. и 2003 офис... рус шрифт вот убей не могу сделать... принимаю мыло через microsoft outlook...
вот краткий пример как есть в данный момент:

$subject = "Информация";
$mailcontent = "Привет";
$fromaddress = "From: администратор";
mail($email, $subject, $mailcontent, $fromaddress);

тело сообщения вместе с темой отбражается "кракозябрами"(непонятной кодировкой).
пробовал
convert_cyr_string ($mailcontent, "w","k")
не помогает :D

Хелп плииз

А где заголовки???

/* получатели */
$to = "Mary <mary@example.com>" . ", " ; //обратите внимание на запятую
$to .= "Kelly <kelly@example.com>";

/* тема\subject */
$subject = "Birthday Reminders for August";

/* сообщение */
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

/* Для отправки HTML-почты вы можете установить шапку Content-type. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* дополнительные шапки */
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* и теперь отправим из */
mail($to, $subject, $message, $headers);


  • 0

#187
Edjay

Edjay
  • Гость
  • 33 сообщений
Народ, кто знает, в чем может быть проблема: на PHP4 работает нормально, но на своем компе ставил сервак и проверял... а выложил в инет на РНР5, не работает следующее:

<form action="insert.php" method="post">
<table border="0">
<tr>
<td>Индивидуальный номер:</td>
<td><input type="text" name="isbn" maxlength="13" size="30"></td>
</tr>
<tr>
<td>Автор:</td>
<td><input type="text" name="author" maxlength="30" size="30"></td>
</tr>
<tr>
<td>Название:</td>
<td><input type="text" name="title" maxlength="60" size="30"></td>
</tr>
<tr>
<td>Цена, $:</td>
<td><input type="text" name="price" maxlength="7" size="7"></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="добавить"></td>
</tr>
</table>
</form>


== insert.php ==

<?
if (!$isbn || !$author || !$title || !$price)
{
echo "Вы внесли не все данные.<br>
Пожалуйста, вернитесь назад и внесите их.<br>";

}

$isbn = addslashes($isbn);
$author = addslashes($author);
$title = addslashes($title);
$price = doubleval($price);

@ $db = mysql_pconnect("localhost", "jam_user", "test");

if (!$db)
{
echo "Ошибка: невозможно подключится к серверу. <br>
Пожалуйста, попробуйте позже.";
exit;
}

mysql_select_db("jam_books");
$query = "insert into books values ('".$isbn."','".$author."','".$title."','".$price."')";
$result = mysql_query($query);

if ($result)
echo mysql_affected_rows()." книга внесена в базу.";

?>

-------

после того, как пытаешься добвить, он пришет что не все строки заполнены, хотя они заполнены... что может быть?

и при запросы выдать все данные из таблице выдает их вопросиками, в чем дело??
  • 0

#188
kornel

kornel
  • В доску свой
  • 9 069 сообщений


как реализовать многопоточность на пхп? хочу, чтобы параллельно можно было создавать несколько соединений

Думаю это поможет pcntl_fork.

php простой скриптовый язык и в нем нет инструментов, для организации многозадачности любого вида.

Но мы, ведь, можем делить процесс.

Действительно забыл про посикс расширения. Но в любом случает, эта функция создаст новый процесс а не нить. :D
  • 0

#189
MadRabbit

MadRabbit
  • Постоялец
  • 325 сообщений

Народ, кто знает, в чем может быть проблема: на PHP4 работает нормально, но на своем компе ставил сервак и проверял... а выложил в инет на РНР5, не работает следующее:

...

после того, как пытаешься добвить, он пришет что не все строки заполнены, хотя они заполнены... что может быть?

и при запросы выдать все данные из таблице выдает их вопросиками, в чем дело??


Возможно настройка конфигурации register_globals=Off

В соответствии с реккомендациями по программированию PHP и установками PHP "по умолчанию", элементы запроса НЕ СТАНОВЯТСЯ глобальными переменными а доступны через глобальные переменные $_GET, $_POST, $_REQUEST и т.д.

Поэтому вместо использования например $isdn рекоммендуется использовать $_REQUEST['isdn']. В целях уменьшения затрат на поддержание совместимости можно "прописать" глобальные переменные "в ручную":

@extract($_REQUEST);

  • 0

#190
eroha

eroha
  • В доску свой
  • 1 762 сообщений
2 MadRabbit
спасибо
  • 0

#191
San_k

San_k
  • В доску свой
  • 1 509 сообщений
например, мне нужен многопоточный сканнер портов :laugh:
нужно параллельно создавать несколько соединений.
  • 0

#192
T. Anre

T. Anre

    Data Miner

  • В доску свой
  • 2 327 сообщений

например, мне нужен многопоточный сканнер портов :laugh:
нужно параллельно создавать несколько соединений.

kornel, достаточно, ясно объяснил, что к чему. Так, что если нужна многопоточность, юзай JAVA, .NET, TCL, Perl etc.
Хочешь делать сканер, то делай. В чем сложность? Код писать за тебя никто не будет. Про разделения процессов, я уже писал.
  • 0

#193
San_k

San_k
  • В доску свой
  • 1 509 сообщений
2T. Anre
просто меня попросили описать задачу, что я и сделал.

Корнел прав; но можно воспользоваться возвожностыми операционной системы. С другой стороны многозадачность не всегда необходима. Опишите пожалуйста задачу.

я не просил код писать за меня.

сканер то написал. просто он однопоточный.
спасибо всем за советы.
буду что нибудь пробовать
  • 0

#194
TLemur

TLemur
  • В доску свой
  • 3 723 сообщений
Подниму-ка я эту тему :-)

Есть скрипт на PHP. Запускается при помощи Cron 1 раз в сутки. В задачи его входит, в частности, запись некого html файла при помощи fwrite.
Возникло желание сделать для оного html файла компрессию при помощи gzip.
Вопрос: как добиться этого, учитывая вышесказанное? В Google полно примеров сжатия только для случаев, когда html генерируется PHP при выводе файлов посредством echo.
  • 0

#195
Mak_gor

Mak_gor
  • Случайный прохожий
  • 3 сообщений

как реализовать многопоточность на пхп?

хочу, чтобы параллельно можно было создавать несколько соединений


да насчет многозадачнасти давно поднимал эту тему. Мне необходимо было получать информацию с 4 поисковиков в xml формате и потом их выводить. Естественно важную роль играла скорость. Но в пхп можно получать данные многопоточно по средством сокетов или Курл.

Пример:
function multi_read($connomains, $max_threads){
$mh = curl_multi_init();
foreach ($connomains as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle ($mh,$conn[$i]);
}
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active and $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
if ($mrc != CURLM_OK) {
print "Curl multi read error $mrc\n";
}
foreach ($connomains as $i => $url) {
if (($err = curl_error($conn[$i])) == '') {
$res[$i]=curl_multi_getcontent($conn[$i]);
} else {
print "Curl error on handle $i: $err\n";
}
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
return($res);
}
$connomains = array(
	"http://yandex.ru",
   "http://google.ru",
   "http://rambler.ru",
   "http://yahoo.com"
   );

$dataxml = multi_read($connomains, count($connomains));



  • 0

#196
t0wer

t0wer
  • Свой человек
  • 669 сообщений
вопрос от новичка, только начал изучать рнр застрял на переменных вот код к примеру:
<?php

$name = "Александр";
$age = 25;

echo "$age";
echo "<br>Автомобиль";
echo "<br>Моего друга зовут $name и ему $age лет;

?>

ни в одном брузере не отображается вернее отображается ,но то что вне рамок рнр

Сообщение отредактировал t0wer: 16.02.2009, 18:34:56

  • 0

#197
carlos_php

carlos_php
  • Случайный прохожий
  • 2 сообщений

ни в одном брузере не отображается вернее отображается ,но то что вне рамок рнр

Ничего удивительного, в строке echo "<br>Моего друга зовут $name и ему $age лет; нет закрывающей кавычки

Сообщение отредактировал carlos_php: 16.02.2009, 18:44:06

  • 0

#198
t0wer

t0wer
  • Свой человек
  • 669 сообщений
спасибо,кавычки закрыл ,но все равно тоже самое получается,рнр код не пашет( , пишу я в рнр едит
  • 0

#199
MX_Master

MX_Master
  • Частый гость
  • 70 сообщений
t0wer
Чтобы проверять работоспособность Ваших PHP скриптов, кроме браузера Вам нужно как минимум (вкратце):
- установить и настроить на компьютере веб-сервер;
- установить последнию версию PHP
- настроить обработку PHP кода веб-сервером

Скорее всего, Вам может подойти вот этот готовый комплект под названием DENWER. Я использовал этот комплект в начале изучения PHP. По мере изучения PHP, баз данных и веб-сервера, возможно, Вы захотите настроить веб-сервер самостоятельно, а пока, рекомендую воспользоваться этим бесплатным комплектом. :)
  • 0

#200
t0wer

t0wer
  • Свой человек
  • 669 сообщений
разумеется Денвер я установил,все как положено,url документа
Z/localhost/home/php/www/index.php, запускал и перезапускал сервер ,но все равно не выходит
  • 0


Количество пользователей, читающих эту тему: 0

пользователей: 0, неизвестных прохожих: 0, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.